首页 > 其他分享 >以效率为导向:用ChatGPT和HttpRunner实现敏捷自动化测试(二)

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

时间:2023-10-13 17:46:57浏览次数:33  
标签:脚本 HttpRunner 接口 生成 自动化 敏捷 Httprunner ChatGPT chatGPT

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的发展会越来越熟练。因为星星之火可以燎原。

作者:京东科技 张兴磊

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

标签:脚本,HttpRunner,接口,生成,自动化,敏捷,Httprunner,ChatGPT,chatGPT
From: https://www.cnblogs.com/jingdongkeji/p/17762701.html

相关文章

  • 文心一言 VS 讯飞星火 VS chatgpt (112)-- 算法导论10.2 3题
    三、用go语言,用一个单链表L实现一个队列。要求操作ENQUEUE和DEQUEUE的运行时间仍为O(1)。文心一言:在Go语言中,使用单链表实现队列的操作,包括入队(ENQUEUE)和出队(DEQUEUE),并保持操作的时间复杂度为O(1),需要利用两个指针,一个指向队头,另一个指向队尾。以下是一个简单的实现:pac......
  • 使用api调用chatGPT,python自定义接口方法
    用非官网的api一般要把官网地址https://api.openai.com/改为相应网站的url。今天测试的时候找了各种教程都没什么用,最后终于成功了,代码如下:importopenaiimportjsonimportosopenai.api_key="sk-xxxxxxxxxx"#改成你的keyopenai.api_base="https://yyyyyyyyyy/v1"#改成......
  • 近百个最新免费chatgpt访问集合,包含国内直接访问和国外升级版本
    近百个最新免费chatgpt访问集合,包含国内直接访问和国外升级版本。ChatGPT是一个基于人工智能的聊天机器人,它可以与用户进行自然语言交互。ChatGPT使用了最新的自然语言处理技术,包括深度学习和神经网络,以便更好地理解用户的意图和回答用户的问题。ChatGPT可以回答各种问题,包括但不限......
  • scrum-Sprint回顾会:促进敏捷团队学习与改进的关键
    ​Sprint回顾会的主要目的是促进Scrum团队的学习和持续改进。在每个Sprint结束后,团队聚集在一起进行回顾,以达到以下目标:识别问题: 回顾会允许团队识别在Sprint(迭代)期间遇到的问题、挑战和障碍。这有助于提高对问题的认识,并确定下个Sprint的改进计划。寻找改进的机会: 团队......
  • Running Large Language Models locally – Your own ChatGPT-like AI in C#
    Forthepastfewmonths,alotofnewsintechaswellasmainstreammediahasbeenaround ChatGPT,anArtificialIntelligence(AI)productbythefolksat OpenAI.ChatGPTisaLargeLanguageModel(LLM)thatisfine-tunedforconversation.Whileunderval......
  • 利用ChatGPT完成数字社区产品使用手册的编写
    利用ChatGPT完成数字社区产品使用手册的编写搜索的问题及答案:一、身为产品介绍师怎么介绍用户的登录的功能概述用户登录是我们手机软件中的一个重要功能,它为用户提供了一系列的便利和个性化的体验。通过登录,用户可以享受一下几个主要功能:1.个人化定制:登录后,用户可以根据自己......
  • 国内外敏捷管理工具大全
    ​敏捷开发涉及多个阶段和活动,因此有许多工具可以帮助团队有效地规划、跟踪和管理工作。以下是一些常用的敏捷开发工具: Trello: Trello是一种直观的项目管理工具,它使用卡片和面板来帮助团队协作和可视化项目进度。适合小型团队和项目。Leangoo领歌: Leangoo领歌是国产的永......
  • ChatGPT大更新-视觉(vision)
    最近ChatGPT除了语音外,vision(视力)也有上线。国外网友的几个例子。看起来能力还是很强的。除了拍照,画图,草稿都可以识别。这么下去,最适合的ChatGPT应用,可能是机器人了。 ......
  • 在敏捷项目管理中,开发人员(Developers)的职责
    ​在Scrum敏捷开发中,开发人员(Developers)是Scrum团队中最重要的角色之一,负责产品的开发和交付,其重要性不言而喻。那开发人员的职责和需要参加的活动是什么呢?Developers核心职责:承诺并完成Sprint的目标。全权负责Sprint目标的实现,包括工作任务的规划、技术方案的确定,确保符合交......
  • ChatGPT 是如何产生心智的?
    一、前言-ChatGPT真的产生心智了吗?来自斯坦福大学的最新研究结论,一经发出就造成了学术圈的轰动,“原本认为是人类独有的心智理论(TheoryofMind,ToM),已经出现在ChatGPT背后的AI模型上”。所谓心智理论,就是理解他人或自己心理状态的能力,包括同理心、情绪、意图等。这项研究中,作者发......