27 | test::nginx 包罗万象的测试方法
温铭
该思维导图由 AI 生成,仅供参考
你好,我是温铭。
通过上节课的学习,你已经对 test::nginx 有了一个初步的认识,并运行了最简单的示例。不过,在实际的开源项目中,test::nginx 编写的测试案例显然要比示例代码复杂得多,也更加难以掌握,不然它也就称不上是拦路虎了。
在本节课中,我会带你来熟悉下 test::nginx 中经常用到的指令和测试方法,目的是让你可以看明白 OpenResty 项目中大部分的测试案例集,并有能力来编写更真实的测试案例。即使你还没有给 OpenResty 贡献过代码,但熟悉了 OpenResty 的测试框架,对于你平时工作中设计和编写测试案例,还是会有不少启发的。
test::nginx 的测试,本质上是根据每一个测试案例的配置,先去生成 nginx.conf,并启动一个 Nginx 进程;然后,模拟客户端发起请求,其中包含指定的请求体和请求头;紧接着,测试案例中的 Lua 代码会处理请求并作出响应,这时,test::nginx 解析响应体、响应头、错误日志等关键信息,并和测试配置做对比。如果发现不符,就报错退出,测试失败;否则就算成功。
test::nginx 中提供了很多 DSL 的原语,我按照 Nginx 配置、发送请求、处理响应、检查日志这个流程,做了一个简单的分类。这 20% 的功能可以覆盖 80% 的应用场景,所以你一定要牢牢掌握。至于其他更高级的原语和使用方法,我们留到下一节再来介绍。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了test::nginx的测试方法,包括Nginx配置、发送请求和处理响应三个方面。在Nginx配置方面,文章介绍了如何使用config关键字插入Nginx配置,并展示了一个测试案例的代码。发送请求方面详细介绍了如何使用request原语发送GET和POST请求,并展示了使用eval进行更复杂请求的示例。处理响应方面讨论了如何检查响应体、响应头、响应码和日志。文章通过具体的示例和解释,帮助读者快速了解了test::nginx的测试方法,为读者提供了实用的技术指导。同时,文章还介绍了响应体、响应头、响应码和错误日志的检测方法,以及如何使用正则表达式进行灵活的检测。通过这些原语的组合,读者可以实现比较完整的测试案例集。文章最后提出了一个思考题,邀请读者探讨test::nginx这种抽象一层的DSL的优势和劣势。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《OpenResty 从入门到实战》,新⼈⾸单¥59
《OpenResty 从入门到实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(5)
- 最新
- 精选
- yousatest nginx可以构造http2请求吗2019-11-231
- Geek_584aa7请问这个测试框架支持并发执行吗?还有如果要对非error日志断言的话可以用其他什么方式?比如我要对自定义路径下的某个日志断言要怎么处理?2022-06-18
- 一只苦逼打卡2020-03-24
- wusiration优势是抽象程度高,编写测试用例更为简单; 劣势是有一定学习成本;2019-07-26
- 许童童优势是编写测试用例更方便,效率更高。 劣势是需要学习成本,框架层面的变动很麻烦。2019-07-26
收起评论