1、前言
在上一篇文章: 利用ChatGPT提升測(cè)試工作效率——測(cè)試工程師的新利器(一)中,我們提到了如何通過chatGPT生成單接口測(cè)試用例,然后再讓chatGPT去根據(jù)測(cè)試用例去生成接口自動(dòng)化腳本。本篇文章將詳細(xì)講解一下我們團(tuán)隊(duì)內(nèi)部在遇到業(yè)務(wù)痛點(diǎn)時(shí)如何利用Httprunner框架進(jìn)行接口自動(dòng)化測(cè)試的。當(dāng)最近邂逅chatGPT后又是如何將二者結(jié)合起來(lái),實(shí)現(xiàn)"敏捷"自動(dòng)化測(cè)試的。
首先業(yè)務(wù)測(cè)試面對(duì)的痛點(diǎn)就是在商業(yè)化Devops產(chǎn)品在交付過程中,不同的客戶現(xiàn)場(chǎng)和公司內(nèi)部存在各種各樣的環(huán)境還有各種國(guó)產(chǎn)化系統(tǒng),并行多個(gè)客戶交付,多版本需要進(jìn)行回歸測(cè)試。如果在有限的人力資源下,通過測(cè)試人員人工進(jìn)行回歸的化可能就會(huì)不能按時(shí)按點(diǎn)完成交付。如何快速的實(shí)現(xiàn)接口自動(dòng)化輔助回歸,經(jīng)過團(tuán)隊(duì)內(nèi)部選型,根據(jù)快速性,靈活性,易用性最終選擇了HttpRunner框架。最終實(shí)現(xiàn)了能在不同的客戶現(xiàn)場(chǎng)環(huán)境,當(dāng)運(yùn)維人員部署完成環(huán)境后能夠快速實(shí)現(xiàn)基本功能回歸測(cè)試,大大減少了測(cè)試人員的回歸時(shí)間。
接下來(lái)詳細(xì)講一下我們是如何使用Httprunner通過“點(diǎn)”,“改”,“查”這三板斧進(jìn)行接口自動(dòng)化測(cè)試的。點(diǎn)就是通過在web前端進(jìn)行業(yè)務(wù)操作將對(duì)應(yīng)接口錄制下來(lái),然后一條命令輸出自動(dòng)化腳本。改就是需要將所有重復(fù)需要替換的內(nèi)容用腳本進(jìn)行批量更改,當(dāng)然變量抽取及斷言目前仍然需要每個(gè)接口人工進(jìn)行更改。查就是運(yùn)行調(diào)試找錯(cuò)修正。相比一些接口測(cè)試工具或平臺(tái)需要人工單接口錄入,Httprunner簡(jiǎn)直是so easy,哪里麻煩點(diǎn)哪里!下面先舉例詳細(xì)介紹一下如何通過Httprunner生成自動(dòng)化腳本。
2、招式一:點(diǎn)一點(diǎn)
現(xiàn)在我以一個(gè)簡(jiǎn)單的業(yè)務(wù)場(chǎng)景進(jìn)行說(shuō)明,要將在團(tuán)隊(duì)空間模塊創(chuàng)建團(tuán)隊(duì)空間,創(chuàng)建迭代,創(chuàng)建卡片整個(gè)流程實(shí)現(xiàn)自動(dòng)化。首先需要在Web端進(jìn)行對(duì)應(yīng)的操作。
同時(shí)用Fiddler等抓包工具,或者瀏覽器本身的F12功能也可以抓取業(yè)務(wù)流程接口。刪除次要保留核心接口,將所有接口導(dǎo)出成har文件createSpaceCardDemo.har。(抓包工具及瀏覽器都可以導(dǎo)出)
接下來(lái)通過Httprunner框架的工具命令行:har2case.exe createSpaceCardDemo.har將har文件轉(zhuǎn)化成py腳本。(當(dāng)然也可以是yml格式,相比較而言py格式的更簡(jiǎn)潔易讀)
3、招式二:改一改
運(yùn)行命令第一輪生成這樣的:通過觀察發(fā)現(xiàn)腳本里面url,headers,cookies,請(qǐng)求體等信息會(huì)根據(jù)不同環(huán)境不同用戶進(jìn)行變更,所以需要參數(shù)化。
“秘制”腳本第二輪替換后變成這樣:將url,headers,cookies進(jìn)行抽離后,此時(shí)腳本已經(jīng)非常簡(jiǎn)潔明了了。
人工第三輪替換:將入?yún)?shù)化保證每次都能運(yùn)行。返回值字段抽取后吐給下個(gè)結(jié)果或其他依賴腳本。斷言針對(duì)每個(gè)接口的業(yè)務(wù)特性有針對(duì)性的進(jìn)行判斷。
4、招式三:查一查
修改完成后,通過命令hrun .\testcases\space\space\createSpaceCardDemo_test.py --html=reports\index.html運(yùn)行,檢查腳本的正確性。
是不是感覺特別簡(jiǎn)單。比把大象裝冰箱還要簡(jiǎn)單。
說(shuō)明:前期框架需要做好規(guī)劃,變量抽離函數(shù)封裝要做好。還需要考慮不同環(huán)境,不同部署方式,接口前綴變動(dòng)等等業(yè)務(wù)特點(diǎn)。這樣后期的自動(dòng)化腳本就越簡(jiǎn)單。
5、ChatGPT生成用例
以上就是Httprunner實(shí)現(xiàn)接口自動(dòng)化的基本流程。但是如果要做核心接口的異常場(chǎng)景如何測(cè)試呢,前端不能通過點(diǎn)一點(diǎn),錄制一下就會(huì)自動(dòng)生成腳本。如果人工去手工寫也會(huì)大大提高測(cè)試人員的工作量。現(xiàn)在chatGPT閃亮登場(chǎng)了。初步想法就是給chatGPT接口入?yún)?,入?yún)⒌募s束條件。然后讓chatGPT生成接口的異常場(chǎng)景的測(cè)試用例。再讓chatGPT將我們的測(cè)試用例轉(zhuǎn)成我們需要的自動(dòng)化腳本。又是如此簡(jiǎn)單,so easy!哪里不對(duì)再讓chatGPT改哪里。
經(jīng)過幾輪的改改改,最終chatGPT生成的用例如下:
6、ChatGPT生成Httprunner腳本
接下來(lái)再將生成好的測(cè)試用例喂給chatGPT,讓它自動(dòng)生成接口自動(dòng)化腳本。先訓(xùn)練按照一個(gè)用例生成符合預(yù)期的接口自動(dòng)化腳本。
接下來(lái)將所有生成的測(cè)試用例"喂"給chatGPT,讓其將所有測(cè)試用例生成Httprunner接口自動(dòng)化腳本。通過命令hrun .\testcases\space\exceptions\createSpaceException_P01_test.py運(yùn)行后發(fā)現(xiàn)直接成功。當(dāng)然目前的斷言還只是狀態(tài)碼斷言,還需針對(duì)不同場(chǎng)景的消息體進(jìn)行斷言。
7、總結(jié)
以上就是當(dāng)chatGPT與Httprunner(官網(wǎng)鏈接)碰撞出的火花。Httprunner對(duì)于寫接口用例已經(jīng)非常簡(jiǎn)單了,當(dāng)再遇到chatGPT后功能又大大增強(qiáng)了。我們對(duì)于能錄制的接口只需通過三板斧,點(diǎn)一點(diǎn),改一改和查一查就能寫好一個(gè)場(chǎng)景的用例。對(duì)于不能進(jìn)行錄制的單接口可以通過chatGPT去生成用例,然后再讓chatGPT去自動(dòng)生成自動(dòng)化腳本。當(dāng)然目前的應(yīng)用還屬于相對(duì)比較簡(jiǎn)單的接口,前期剛剛使用可能會(huì)像小孩子剛學(xué)走路會(huì)磕磕絆絆,但是我相信隨著不斷探索和學(xué)習(xí),隨著chatGPT的發(fā)展會(huì)越來(lái)越熟練。因?yàn)樾切侵鹂梢粤窃?/p>
作者:京東科技 張興磊文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-710675.html
來(lái)源:京東云開發(fā)者社區(qū) 轉(zhuǎn)載請(qǐng)注明來(lái)源文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-710675.html
到了這里,關(guān)于以效率為導(dǎo)向:用ChatGPT和HttpRunner實(shí)現(xiàn)敏捷自動(dòng)化測(cè)試(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!