Python 如何使用 HttpRunner 做接口自動化測試
Python實戰(zhàn)社群
Java實戰(zhàn)社群
長按識別下方二維碼,按需求添加
掃碼關(guān)注添加客服
進(jìn)Python社群▲
掃碼關(guān)注添加客服
進(jìn)Java社群▲
作者丨星安果
來源丨AirPython
1. 前言
原始測試金子塔包含 3 層,分別是:UI 自動化測試、接口服務(wù)測試、單元測試

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

第二步:轉(zhuǎn)為測試用例
使用 har2case 命令將 HAR 文件轉(zhuǎn)換為測試用例,V3 版本默認(rèn)生成測試用例格式為 Py 文件

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

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

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

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



近期精彩內(nèi)容推薦:


