<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          基于HttpRunner4.0的接口自動化測試實(shí)踐[內(nèi)含用例設(shè)計(jì)和編寫]

          共 2974字,需瀏覽 6分鐘

           ·

          2022-05-20 12:29

          前言

          前幾天逛測試論壇,發(fā)現(xiàn)HttpRunner竟然推出v4.0版本,感到非常的激動和歡喜。對于HttpRunner工具,在我上家公司是使用HttpRunner1.0版本為基礎(chǔ)二次開發(fā)成公司通用接口自動化框架并且集成到測試管理平臺,直到現(xiàn)在也一直服務(wù)公司內(nèi)部業(yè)務(wù)測試,不僅可以快速進(jìn)行需求自動化測試、還可以進(jìn)行回歸測試驗(yàn)證服務(wù)框架升級等需求。

          回想前幾年,當(dāng)時好用的接口自動化框架和平臺并不多,接口自動化框架大多數(shù)都是基于pytest寫的純代碼的形式的,還是需要測試人員有代碼能力,當(dāng)時我們急需要一款不用寫代碼,并且可以集成到CICD上。

          雖然現(xiàn)在這家公司內(nèi)部已經(jīng)有一套統(tǒng)一的接口自動化工具,但是我還是希望讓更多的人看到HttpRunner這么優(yōu)秀的工具存在。

          版本對比

          這個圖包含HttpRunner1到4的功能對比:


          在功能升級上,如下幾個功能是我比較期待的功能:

          • 多協(xié)議支持: 現(xiàn)在公司內(nèi)部一般都存在多個協(xié)議,支持了多協(xié)議測試,這個功能完全可以使用一套接口測試工具解決,不用再切換其他工具了。

          • 腳本轉(zhuǎn)換工具: 支持了其他接口周邊工具,比如可以從swagger就能轉(zhuǎn)換成接口測試用力,極大的提高了工作效率。

          • 性能測試: 在早期的HttpRunner是使用Locust作為性能引擎發(fā)壓,性能上還有些不足。HttpRunner4.0使用boomer作為性能引擎發(fā)壓,boomer是golang編寫的,性能強(qiáng)勁。

          安裝

          HttpRunner v4 采用 Golang 開發(fā),已針對主流操作系統(tǒng)預(yù)編譯了二進(jìn)制文件,只需在系統(tǒng)終端中執(zhí)行一條命令即可完成安裝部署。

          安裝命令如下:

          bash?-c?"$(curl?-ksSL?https://httprunner.com/script/install.sh)"


          驗(yàn)證是否安裝成功:

          hrp?--help


          查看版本命令:

          hrp?-v

          hrp?version?v4.0.0

          體驗(yàn)

          創(chuàng)建項(xiàng)目

          有了HttpRunner工具以后,需要本地創(chuàng)建一個工程項(xiàng)目。
          恰好HttpRunner支持使用腳手架創(chuàng)建工程項(xiàng)目,會自動生成需要的工程結(jié)構(gòu)。

          執(zhí)行命令如下:

          hrp?startproject?apiDemo


          執(zhí)行命令完成后,在本地會創(chuàng)建一個"apiDemo"文件夾。

          如下是項(xiàng)目工程的目錄結(jié)構(gòu):

          會自動創(chuàng)建一個python虛擬環(huán)境、debugtalk、testcase、report等結(jié)構(gòu)。

          用例組織

          其中,testcases文件夾中包含了多個示例測試用例。主要包含基本配置、請求配置兩部分。

          • config(基本配置): 主要配置用例的公共參數(shù)、請求host等參數(shù)。

          • teststeps(用例配置: 主要配置用例的接口path、請求參數(shù)、斷言參數(shù)等。teststeps可以包含多個測試用例,執(zhí)行順序是從上到下順序執(zhí)行。



          用例Case中,可以引用變量和調(diào)用函數(shù)

          • 變量引用: 約定通過?的形式來引用變量,例如 fool1或{foo1},變量定義需要在config的variables定義。

          • 函數(shù)調(diào)用:約定通過調(diào)用插件函數(shù){sum_two(1, 2)},函數(shù)調(diào)用需要debugtalk.py代碼中編寫。

          比如需要用例需要執(zhí)行兩個參數(shù)求合,這種符合業(yè)務(wù)場景的方法,在debugtalk.py編寫。


          debugtalk.py需要通過 funppy 進(jìn)行 register 和 serve() 即可。

          sum_two_int函數(shù)映射成sum_two函數(shù),便于用例中調(diào)用執(zhí)行。

          if?__name__?==?'__main__':
          ????funppy.register("sum_two",?sum_two_int)
          ????funppy.serve()

          實(shí)戰(zhàn)

          到此為止,我們對HttpRunner4.0有了基本認(rèn)識,接下使用項(xiàng)目實(shí)戰(zhàn)一把。

          開源的電商項(xiàng)目mall作為本次項(xiàng)目案例.本文主要介紹,從項(xiàng)目部署 => 需求分析 => 用例設(shè)計(jì) API測試,微服務(wù)API測試的整個過程。

          項(xiàng)目部署

          后臺管理系統(tǒng),如下圖:

          image
          • GitHub地址:

          • https://github.com/macrozheng/mall

          • 部署教程:

          • https://macrozheng.github.io/mall-learning/#/README

          下載代碼

          git?clone?https://github.com/macrozheng/mall.git

          打包代碼

          mvn?install


          部署命令

          nohup?java?-jar?mall-admin-1.0-SNAPSHOT.jar?&

          mall后端服務(wù)集成swagger,可以自動生成接口文檔,swagger地址如下:

          http://localhost:8080/swagger-ui.html#/


          打開上面地址,出現(xiàn)下圖說明訪問正常。

          需求分析

          mall是一個完整的電商管理系統(tǒng),包含:商品管理、訂單管理、營銷模塊等。


          本次需求模塊是"廣告列表"功能。


          梳理如下功能點(diǎn):


          測試用例

          首先我們需要對測試的場景進(jìn)行抽離,明確場景的接口、參數(shù)等。

          接口測試用例編寫


          編寫登錄測試接口

          我們測試的項(xiàng)目,需要先執(zhí)行登錄接口。

          這里考慮到把登錄接口獨(dú)立出來成mall_login_testcase.yml,為了能方便其他接口用例方便復(fù)用。

          從登錄接口返回?cái)?shù)據(jù)結(jié)果中得到鑒權(quán)參數(shù),傳遞給其他接口放到請求頭中。

          其他接口測試用例在teststeps中引入登錄用例即可。

          編寫廣告測試接口

          創(chuàng)建廣告接口為例子,根據(jù)接口請求參數(shù)定義好參數(shù)。由于為了讓每次創(chuàng)建的廣告是唯一的,需要讓name參數(shù)每次不一樣,比如使用固定前綴 + 時間戳的方式,就能做到唯一。


          debugtalk.py文件中創(chuàng)建get_time函數(shù)返回當(dāng)前時間戳,然后在變量中引入即可。

          變量引入:

          variables:
          ????ad_name:?ad_name_${get_time()}

          驗(yàn)證結(jié)果這塊,支持判斷結(jié)果等于、不等于、大于等于等常見判斷方法,在這里是使用eq這種縮寫關(guān)鍵字替代。

          validate:
          ????-?eq:?["status_code",?200]
          ????-?ge:?["body.data",?1]

          在刪除廣告接口的入?yún)⑿枰?strong style="outline: 0px;max-width: 100%;font-size: inherit;color: inherit;line-height: inherit;box-sizing: border-box !important;overflow-wrap: break-word !important;">廣告id,這里需要動態(tài)的從查詢列表中獲取,使用extract關(guān)鍵字得到創(chuàng)建接口成功后的廣告id。


          執(zhí)行測試

          根據(jù)需要測試的接口用例完成接口用例的編寫設(shè)計(jì),嘗試執(zhí)行一下接口測試用例腳本。

          執(zhí)行命令如下:

          hrp?run?testcases/mall_ad_testcase.yml?l?--gen-html-report

          在執(zhí)行過程中,會打印請求參數(shù)、響應(yīng)參數(shù),便于調(diào)試用例。


          執(zhí)行成功后,會在reports目錄下生成報告,是html格式使用瀏覽器打開即可。

          Summary部分執(zhí)行情況等信息、執(zhí)行時間、執(zhí)行平臺等參數(shù)。

          Details部分是按照用例執(zhí)行順序展示,點(diǎn)擊log日志,可以看到Request和Response兩部分詳細(xì)信息。

          結(jié)語

          本文介紹了,HttpRunner4.0安裝到使用上的一些實(shí)戰(zhàn)效果,可以證明的是HttpRunner4.0可以滿足絕大工作場景并且在使用過程中也沒什么bug,希望大家能上手使用。

          github地址: https://github.com/httprunner/httprunner

          瀏覽 126
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中国1级黄片 | 天天天干夜夜夜 | 老欧性老太色HD大全 | 一区二区福利视频 | 欧美国产日韩视频 |