test-nginx 使用文档

16 篇文章 0 订阅

https://segmentfault.com/a/1190000004359984

install
git clone https://github.com/agentzh/test-nginx.git
cd test-nginx & perl Makefile.PL
sudo make install

如果缺少包的话,可以通过 cpan 装;例如 装 Test:More

sudo perl -MCPAN -e shell
cpan[1]> install Test:LongString
geting started

文件目录组织:
一般是在一个项目下新建 t 目录来存放测试集
以lua-resty-redis 为例:https://github.com/agentzh/lua-resty-redis
有 Makefile ,test 选项里有重要的一句:
prove -I../test-nginx/lib -r t
这里有调用 perl 的 prove 指令,prove 会去执行测试
t 目录下有 很多个 .t 文件,里面就是测试案例
编写测试案例:

一个测试案例主要有三部分内容:
程序代码: nginx location 的配置内容
输入: http 的 request 信息
输出检查: status,header,body,error_log 检查

https://github.com/agentzh/lua-resty-redis/blob/master/t/sanity.t
还是以 lua-resty-redis 的一个为例,第 25 行之后的才是每个测试案例的内容
即完成一个测试案例里的那三项内容
=== Test 1:
— request 表示输入是 发一起 http GET 请求 /t
GET /t
— config 表示 nginx.conf 里 location /t 里的内容


— response_body 表示对 http 返回的 body 进行匹配检查
— no_error_log 表示会对 nginx 的 error.log 检查,必须没有 EORROR 级别的记录
更完成的输入,输出检查项 定义,可以看 https://github.com/agentzh/test-nginx/blob/master/lib/Test/Nginx/Socket.pm
1870 行之后有完整的文档
进一步解释, test-nginx 执行流程:

  1. 组装 nginx.conf,启动 nginx 实例进程根据我们在 Makefile 里配置的 PATH,和每一个 .t 文件最前面的一些配置项

会组装一个完整的 nginx.conf 文件把 t/servroot 当成 nginx 的工作目录,启动 nginx 实例

  1. 发起 http 请求,根据每个测试案例的提供的信息

  2. 检查 http 的返回项包括 http status,http response header, http response body

更多测试项:
etcproxy 可以在 tcp 层上做一个延时转发,模拟测试 bad 网络环境
valgrind 内存泄露检查
stap 检查; 调用 systemtap 做输出检查


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值