Python 如何使用 HttpRunner 做接口自動化測試
點擊上方“軟測小生”,選擇“加為星標”
第一時間關注 軟件測試 原創(chuàng)干貨!

1. 前言
原始測試金子塔包含 3 層,分別是:UI 自動化測試、接口服務測試、單元測試

其中,單元測試是對軟件的最小可測試單元進行檢查和驗證,也是產(chǎn)生效率最大的一項測試
接口服務測試分為模塊接口測試和協(xié)議接口測試
UI 測試主要是為了取代人力操作,通過 UI 自動化去模擬操作,降低回歸測試的成本
考慮到投入產(chǎn)出率,大部分企業(yè)都會將測試重點放在接口自動化測試這一項上
接口自動化主流方案包含:Python + Pytest/Unittest、Java + TestNG、Postman、HttpRunner、Postman、Jmeter、RobotFramework?等
本篇文章將和大家一起聊聊?HttpRunner?做接口自動化的流程
2.介紹及安裝
HttpRunner 是一款完全由 Python 語言編寫的測試框架,并且簡單、優(yōu)雅、功能強大,同時支持 HTTP 和 HTTPS
HttpRunner 主要包含下列特征:
繼承?Requests?庫的全部特性,輕松實現(xiàn) HTTP(S)?的各種測試需求
以 YAML 和 JSON 定義測試用例,通過 pytest 去運行
基于 HAR 文件,實現(xiàn)接口的錄制及用例的生成功能
支持 variables、extract、validate、hook 等關鍵字,可以創(chuàng)建復雜的測試場景
借助輔助插件 debugtalk.py,在測試腳本中輕松實現(xiàn)復雜的動態(tài)計算邏輯
集成 jmespath,方便提取變量、驗證 JSON 響應
集成 pytest,支持大量的插件
集成 allure 生成強大的測試報告
集成 locust,非常方便做性能測試
執(zhí)行方式采用 CLI 調用形式,可以和 Jenkins 等持續(xù)集成工具完美結合
使用 pip 安裝?HttpRunner 穩(wěn)定版本
#?安裝?HttpRunner?穩(wěn)定版本
pip3?install?httprunner
需要指出的是,HttpRunner V3 版本對比?V2 版本進行了大量優(yōu)化,特別是測試用例的表現(xiàn)形式,強烈建議安裝 V3 版本
3.常見命令
安裝完 HttpRunner 之后,就可以使用下面幾個命令了
1、hrun
HttpRunner 最主要的命令,主要作用是運行?Py/YAML/JSON 格式的測試用例
2、hmake
將 YAML/JSON 格式的測試用例轉換為 Python?文件
ps:HttpRunner V3 以 Python 文件保存測試用例,V2 之前是以 JSON/YAML 格式保存測試用例
3、har2case
har2case?作用是將 HAR 格式的請求文件轉為?YAML/JSON/Py?格式的測試用例
ps:一般網(wǎng)絡請求都可以直接以 AHR 格式保存到本地
4、locusts
HttpRunner 集成了 locusts 命令,可以利用它直接進行性能測試
5、其他命令
另外,通過?httprunner -h?命令可以查看幫助;使用?httprunner -V?命令可以查看 HttpRunner 的版本信息
4.小試牛刀
先通過一個簡單的接口聊聊 HttpRunner 的使用步驟
目標接口 - GET:
https://postman-echo.com/get?foo1=bar1
第一步:抓包,保存為 HAR 文件
打開 Charles 或 Fiddler,配置 Chrome 瀏覽器的代理,?使 Charles 可以對瀏覽器進行抓包
使用 Chrome 訪問這個接口地址,模擬一次請求,然后在 Charles?中找到對應的請求,右鍵保存為 HAR 文件

第二步:轉為測試用例
使用?har2case 命令將 HAR 文件轉換為測試用例,V3 版本默認生成測試用例格式為?Py?文件

查看測試用例后發(fā)現(xiàn),HttpRunner 自動生成的測試用例結構十分清晰,二次修改也非常方便

第三步,運行測試用例
使用 hrun 命令運行測試用例,另外,加上?--html 參數(shù),可以在本地生成測試報告
#?生成測試報告
hrun?demo_test.py?--html=report.html
打開測試報告,可以查看測試用例的執(zhí)行結果及日志

5.腳手架
HttpRunner 同樣提供了腳手架,方便我們快速創(chuàng)建標準化項目
#?使用腳手架創(chuàng)建一個項目
httprunner?startproject?demo
生成項目的目錄結果如下:

其中,
1、debugtalk.py
一般用于自定義 Python 函數(shù),方便測試用例調用
比如:某個請求參數(shù)需要通過一段加密邏輯生成,這時可以自定義一個函數(shù)寫在 debugtalk.py 文件中
2、har
從抓包工具、Postman、瀏覽器保存的網(wǎng)絡請求
3、reports
生成測試報告的目錄
需要指出的是,除了使用自帶的?pytest-html 插件生成測試報告,HttpRunner?還可以通過 allure?生成功能更加強大的測試報告
4、testcases
用于放置測試用例
使用 hrun 命令可以直接運行腳手架項目
#?運行腳手架項目
#?hrun?項目名稱
hrun?demo6.最后
受限于篇幅,上面僅僅介紹了 HttpRunner 最基本的使用方法

HttpRunner 更加復雜的功能,我已經(jīng)在官方文檔的基礎上,整理出了一個詳細的操作手冊,關注公眾號后回復「?HR?」即可獲取
文章合集
Selenium | Appium? | Jenkins? |? Jmeter?
軟件測試方法匯總?|?Postman接口參數(shù)化?| 測試用例設計?|?App抓包
視頻教程
Selenium?| Appium |?Jenkins |?Jmeter
AWS與Docker
如何使用AWS EC2+Docker+JMeter構建分布式負載測試基礎架構
Docker容器數(shù)據(jù)持久化和容器網(wǎng)橋連接
Docker刪除image和container
Docker與VM虛擬機的區(qū)別以及Docker的特點
END
覺得不錯,可以“點贊”和“在看”,或者轉發(fā)、留言
精彩的內容要和朋友分享哦
