以效率为导向:用ChatGPT和HttpRunner实现敏捷自动化测试(二)
Tech导读
本文将详细介绍软件测试工程师如何结合ChatGPT和HttpRunner框架实现敏捷自动化测试。文章首先介绍了在商业化DevOps产品交付过程中,业务测试面临的痛点以及需要快速实现接口自动化辅助回归的需求。具体介绍了如何通过在web前端录制业务操作、使用命令生成自动化脚本,并通过批量更改和调试来实现自动化测试。使用ChatGPT与HttpRunner框架结合后可以简化接口测试的整个过程,提高测试效率。
导读
本文将详细介绍软件测试工程师如何结合ChatGPT和HttpRunner框架实现敏捷自动化测试。文章首先介绍了在商业化DevOps产品交付过程中,业务测试面临的痛点以及需要快速实现接口自动化辅助回归的需求。具体介绍了如何通过在web前端录制业务操作、使用命令生成自动化脚本,并通过批量更改和调试来实现自动化测试。使用ChatGPT与HttpRunner框架结合后可以简化接口测试的整个过程,提高测试效率。01 前言
在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执行器还有哪些执行器呢?由此我的Runner探索之旅开始了!
在“京东技术”公众号上一篇文章:《利用ChatGPT提升测试工作效率——测试工程师的新利器(一)》中,提到了如何通过chatGPT生成单接口测试用例,然后再让chatGPT去根据测试用例去生成接口自动化脚本。本篇文章将详细讲解一下团队内部在遇到业务痛点时如何利用Httprunner框架进行接口自动化测试的。当最近邂逅chatGPT后又是如何将二者结合起来,实现"敏捷"自动化测试的。
首先业务测试面对的痛点就是在商业化Devops产品在交付过程中,不同的客户现场和公司内部存在各种各样的环境还有各种国产化系统,并行多个客户交付,多版本需要进行回归测试。如果在有限的人力资源下,通过测试人员人工进行回归的化可能就会不能按时按点完成交付。如何快速的实现接口自动化辅助回归,经过团队内部选型,根据快速性,灵活性,易用性最终选择了HttpRunner框架。最终实现了能在不同的客户现场环境,当运维人员部署完成环境后能够快速实现基本功能回归测试,大大减少了测试人员的回归时间。
接下来详细讲一下如何使用Httprunner通过“点”、“改”、“查”这三板斧进行接口自动化测试的。“点”就是通过在web前端进行业务操作将对应接口录制下来,然后一条命令输出自动化脚本。“改”就是需要将所有重复需要替换的内容用脚本进行批量更改,当然变量抽取及断言目前仍然需要每个接口人工进行更改。“查”就是运行调试找错修正。相比一些接口测试工具或平台需要人工单接口录入,Httprunner简直是so easy,哪里麻烦点哪里!下面先举例详细介绍一下如何通过Httprunner生成自动化脚本。
02
招式:点一点
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目标页面展示到屏幕。
同时用Fiddler等抓包工具,或者浏览器本身的F12功能也可以抓取业务流程接口。删除次要保留核心接口,将所有接口导出成har文件createSpaceCardDemo.har。(抓包工具及浏览器都可以导出)
03
招式二:改一改
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目标页面展示到屏幕。
运行命令第一轮生成这样的:通过观察发现脚本里面url,headers,cookies,请求体等信息会根据不同环境不同用户进行变更,所以需要参数化。
“秘制”脚本第二轮替换后变成这样:将url,headers,cookies进行抽离后,此时脚本已经非常简洁明了了。
04 招式三:查一查
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目
修改完成后,通过命令hrun .\testcases\space\space\createSpaceCardDemo_test.py --html=reports\index.html运行,检查脚本的正确性。
是不是感觉特别简单,比把大象装冰箱还要简单。
说明:前期框架需要做好规划,变量抽离函数封装要做好。还需要考虑不同环境,不同部署方式,接口前缀变动等等业务特点。这样后期的自动化脚本就越简单。
05 ChatGPT生成用例
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目
06 ChatGPT生成Httprunner脚本
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目
接下来再将生成好的测试用例喂给chatGPT,让它自动生成接口自动化脚本。先训练按照一个用例生成符合预期的接口自动化脚本。
接下来将所有生成的测试用例"喂"给chatGPT,让其将所有测试用例生成Httprunner接口自动化脚本。通过命令hrun .\testcases\space\exceptions\createSpaceException_P01_test.py运行后发现直接成功。当然目前的断言还只是状态码断言,还需针对不同场景的消息体进行断言。
07 总结
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目
写在最后的话:希望用您发财的小手 点赞 关注 转发 在看!感谢您的关注和支持!
求分享
求点赞
求在看