OpenResty 从入门到实战
温铭
OpenResty 软件基金会第一任主席,Apache APISIX 项目 VP
20903 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 52 讲
结束语 (1讲)
OpenResty 从入门到实战
15
15
1.0x
00:00/00:00
登录|注册

27 | test::nginx 包罗万象的测试方法

编写更真实的测试案例
熟悉test::nginx
难以掌握
复杂性
检测错误日志
正则表达式检测
正则表达式检测
正则表达式检测
eval
注释
HTTP版本指定
POST
GET
error_log
error_code
response_headers
response_body
more_headers
repeat_each
pipelined_requests
request
http_config
stream_config
config
对平时工作的启发
目的
测试案例
test::nginx的优势和劣势
error_log
error_code
response_headers
response_body
more_headers
repeat_each
pipelined_requests
request
content_by_lua_block
config关键字
处理响应
发送请求
Nginx配置
测试配置对比
解析响应体、响应头、错误日志
Lua代码处理请求并作出响应
模拟客户端发起请求
启动Nginx进程
生成nginx.conf
OpenResty 项目
上节课的学习
思考题
处理响应
发送请求
Nginx配置
DSL原语分类
test::nginx测试本质
温铭
带你领略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
立即购买
登录 后留言

全部留言(5)

  • 最新
  • 精选
  • yousa
    test nginx可以构造http2请求吗
    2019-11-23
    1
  • Geek_584aa7
    请问这个测试框架支持并发执行吗?还有如果要对非error日志断言的话可以用其他什么方式?比如我要对自定义路径下的某个日志断言要怎么处理?
    2022-06-18
  • 一只苦逼
    打卡
    2020-03-24
  • wusiration
    优势是抽象程度高,编写测试用例更为简单; 劣势是有一定学习成本;
    2019-07-26
  • 许童童
    优势是编写测试用例更方便,效率更高。 劣势是需要学习成本,框架层面的变动很麻烦。
    2019-07-26
收起评论
显示
设置
留言
5
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部