使用OAuth后端进行清漆测试(VTC)

时间:2016-12-19 11:23:38

标签: testing oauth varnish

我正在尝试编写一些Varnish(VTC)测试,以测试我们(部分)清漆管理的OAuth后端功能。

简单清漆只是从OAuth Cookie(来自客户端),检查它对我们的OAuth后端的令牌,如果令牌无效/过期,则使用缓存数据或重定向到登录页面进行响应。

在我的测试中,我不想调用OAuth客户端。我想为测试上下文模拟它,所以我需要覆盖默认的varnish配置,如下所示:

varnish v1 -vcl {
     backend default {
       .host = "${s1_addr}";
       .port = "${s1_port}";
       .first_byte_timeout = 350s;
     }

     include "./includes.vcl";

 } -start

此默认配置适用于实时OAuth服务器。我试图像这样覆盖OAuth配置:

 backend oauth {
     .host = "127.0.0.1";
     .port = "8090";
 }

但它没有成功。相反,它会在没有任何解释信息的情况下退出失败代码。

我找不到任何适当的文档,希望以前有人有这个问题。

谢谢。

1 个答案:

答案 0 :(得分:0)

您还可以在清漆测试中定义服务器/后端。试试这个:

# default backend
server s1 {
    rxreq
    txresp -hdr "Set-Cookie: ignore=cookie; expires=Tue, 06-Dec-2016 22:00:00 GMT; Max-Age=2588826; path=/"
}

server s1 -start

varnish v1 -vcl+backend {
    include "./includes.vcl";
} -start

client c1 {
    txreq -url "/" -hdr "Host: www.domain.com" -hdr "Cookie: client=cookie_here"
    rxresp
    expect resp.status == 200
} -run