以效率为导向:用ChatGPT和HttpRunner实现敏捷自动化测试(二)

1、前言

在上一篇文章: 利用ChatGPT提升测试工作效率------测试工程师的新利器(一)中,我们提到了如何通过chatGPT生成单接口测试用例,然后再让chatGPT去根据测试用例去生成接口自动化脚本。本篇文章将详细讲解一下我们团队内部在遇到业务痛点时如何利用Httprunner框架进行接口自动化测试的。当最近邂逅chatGPT后又是如何将二者结合起来,实现"敏捷"自动化测试的。

首先业务测试面对的痛点就是在商业化Devops产品在交付过程中,不同的客户现场和公司内部存在各种各样的环境还有各种国产化系统,并行多个客户交付,多版本需要进行回归测试。如果在有限的人力资源下,通过测试人员人工进行回归的化可能就会不能按时按点完成交付。如何快速的实现接口自动化辅助回归,经过团队内部选型,根据快速性,灵活性,易用性最终选择了HttpRunner框架。最终实现了能在不同的客户现场环境,当运维人员部署完成环境后能够快速实现基本功能回归测试,大大减少了测试人员的回归时间。

接下来详细讲一下我们是如何使用Httprunner通过"点","改","查"这三板斧进行接口自动化测试的。点就是通过在web前端进行业务操作将对应接口录制下来,然后一条命令输出自动化脚本。改就是需要将所有重复需要替换的内容用脚本进行批量更改,当然变量抽取及断言目前仍然需要每个接口人工进行更改。查就是运行调试找错修正。相比一些接口测试工具或平台需要人工单接口录入,Httprunner简直是so easy,哪里麻烦点哪里!下面先举例详细介绍一下如何通过Httprunner生成自动化脚本。

2、招式一:点一点

现在我以一个简单的业务场景进行说明,要将在团队空间模块创建团队空间,创建迭代,创建卡片整个流程实现自动化。首先需要在Web端进行对应的操作。

同时用Fiddler等抓包工具,或者浏览器本身的F12功能也可以抓取业务流程接口。删除次要保留核心接口,将所有接口导出成har文件createSpaceCardDemo.har。(抓包工具及浏览器都可以导出)

接下来通过Httprunner框架的工具命令行:har2case.exe createSpaceCardDemo.har将har文件转化成py脚本。(当然也可以是yml格式,相比较而言py格式的更简洁易读)

3、招式二:改一改

运行命令第一轮生成这样的:通过观察发现脚本里面url,headers,cookies,请求体等信息会根据不同环境不同用户进行变更,所以需要参数化。

"秘制"脚本第二轮替换后变成这样:将url,headers,cookies进行抽离后,此时脚本已经非常简洁明了了。

人工第三轮替换:将入参参数化保证每次都能运行。返回值字段抽取后吐给下个结果或其他依赖脚本。断言针对每个接口的业务特性有针对性的进行判断。

4、招式三:查一查

修改完成后,通过命令hrun .\testcases\space\space\createSpaceCardDemo_test.py --html=reports\index.html运行,检查脚本的正确性。

是不是感觉特别简单。比把大象装冰箱还要简单。

说明:前期框架需要做好规划,变量抽离函数封装要做好。还需要考虑不同环境,不同部署方式,接口前缀变动等等业务特点。这样后期的自动化脚本就越简单。

5、ChatGPT生成用例

以上就是Httprunner实现接口自动化的基本流程。但是如果要做核心接口的异常场景如何测试呢,前端不能通过点一点,录制一下就会自动生成脚本。如果人工去手工写也会大大提高测试人员的工作量。现在chatGPT闪亮登场了。初步想法就是给chatGPT接口入参,入参的约束条件。然后让chatGPT生成接口的异常场景的测试用例。再让chatGPT将我们的测试用例转成我们需要的自动化脚本。又是如此简单,so easy!哪里不对再让chatGPT改哪里。

经过几轮的改改改,最终chatGPT生成的用例如下:

6、ChatGPT生成Httprunner脚本

接下来再将生成好的测试用例喂给chatGPT,让它自动生成接口自动化脚本。先训练按照一个用例生成符合预期的接口自动化脚本。

接下来将所有生成的测试用例"喂"给chatGPT,让其将所有测试用例生成Httprunner接口自动化脚本。通过命令hrun .\testcases\space\exceptions\createSpaceException_P01_test.py运行后发现直接成功。当然目前的断言还只是状态码断言,还需针对不同场景的消息体进行断言。

7、总结

以上就是当chatGPT与Httprunner(官网链接)碰撞出的火花。Httprunner对于写接口用例已经非常简单了,当再遇到chatGPT后功能又大大增强了。我们对于能录制的接口只需通过三板斧,点一点,改一改和查一查就能写好一个场景的用例。对于不能进行录制的单接口可以通过chatGPT去生成用例,然后再让chatGPT去自动生成自动化脚本。当然目前的应用还属于相对比较简单的接口,前期刚刚使用可能会像小孩子刚学走路会磕磕绊绊,但是我相信随着不断探索和学习,随着chatGPT的发展会越来越熟练。因为星星之火可以燎原。

作者:京东科技 张兴磊

来源:京东云开发者社区 转载请注明来源

相关推荐
weixin_4130632110 小时前
测试 focus stacking
opencv·测试·focus stacking
_OP_CHEN2 天前
【测试理论与实践】(四)测试用例篇(上):从概念到万能思路,解锁测试设计核心密码
运维·测试开发·测试用例·bug·压力测试·测试·网络测试
请为小H留灯4 天前
Windows 系统启用 Telnet 客户端:图文详细教程
网络·windows·测试·telnet
Apifox4 天前
Apifox 12 月更新| AI 生成用例同步生成测试数据、接口文档完整性检测、设计 SSE 流式接口、从 Git 仓库导入数据
前端·后端·测试
_OP_CHEN4 天前
【测试理论与实践】(三)测试BUG篇:从 BUG 本质到实战博弈,带你吃透软件测试的核心逻辑
运维·测试开发·产品运营·bug·压力测试·测试
以己之5 天前
初识测试(详细篇)
单元测试·压力测试·测试
零基础的修炼7 天前
[测开项目]问卷系统测试---测试用例
测试
0和1的舞者7 天前
《软件测试分类指南:8 大维度 + 核心要点梳理》
java·软件测试·单元测试·测试·黑盒测试·白盒测试·测试分类
WebInfra9 天前
Midscene v1.0 发布 - 视觉驱动,UI 自动化体验跃迁
javascript·人工智能·测试
雪球工程师团队9 天前
从人力推车到智能引擎:QA 智绘项目的测试用例自动生成术
ai编程·测试