httprunner
作爲一款比較完整的自動化框架,學習成本比較低,好上手,通用的規範性,都是其優點,但是對於複雜的測試場景還是略顯捉襟見肘的,公司一直在用的就是這套系統,最近我開始維護用來做一些測試,才逐漸熟悉起來。
下面是我對這套框架使用的理解
下載安裝我這裏就不說了,一般的教程裏都比較詳細了,我這裏主要講如何進行參數化和其他的使用
1、hrun --startproject test_mysite
創建一個名爲test_mysite的目錄,如圖:
這是自動生成的框架的目錄架構 主要分成
api目錄下爲接口的詳細信息
reports目錄下爲生成的報告
testcases目錄下爲測試用例
testsuites爲測試套件
debugtalk.py文件用於編寫函數輔助測試
1、實際當中使用的目錄如下圖,這是我們公司用的目錄結構
這其中多了幾個文件夾
common——公共部分
data——存放的是cvs的數據
logs——記錄執行的日誌
testcase裏面都是抓取過來並改造過的請求,我這裏使用fildder抓取的
base_url 是IP地址頭,這裏統一用用函數寫入
在debugtalk.py 文件裏編寫函數getBaseUrl
baseUrl = 'http://XXXXXX'
#獲取baseUrl
def getBaseUrl():
return baseUrl
{
"config": {
"name": "add user",
"variables": {},
"base_url": "${getBaseUrl()}"
},
"teststeps": [
{
"name": "/restconf/operations/*******-security:add_user",
"request": {
"url": "/restconf/operations/*****-security:add_user",
"method": "POST",
"headers": {
"Authorization": "Basic YjEzMzllM2Q1MTkyZmRlY2YxMWE4YmIxODmViNDdiNA==",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36",
"Content-Type": "application/json"
},
"json": {
"input": {
"user_name": "$userName",
"password": "$password",
"description": "",
"access_profile": "0",
"email": "",
"idle_session_timeout": 120,
"expired": "0"
}
}
},
"validate": [
{
"eq": [
"status_code",
200
]
},
{
"eq": [
"headers.Content-Type",
"application/json"
]
}
]
}
]
}
testsuite 裏面是以testcase裏面爲基礎,參數化的data數據也在寫在裏面,一些引用variables也會寫在裏面
{
"config": {
"name": "add user",
"variables": {
"dataEnv": "${getDataEnv()}"
},
"base_url": "${getBaseUrl()}"
},
"testcases": {
"addUser": {
"testcase": "testcases/sysmanagement/adduser.json",
"parameters": {
"userName-password-fullName": "${P(data/$dataEnv/sysmanagement/adduser0.csv)}"
}
}
}
}
variables :裏面可以使用在debugtalk.py 編寫的輔助函數${函數名}
testscase : testcase的地址 可以添加多個
parameters: 請這裏是參數化的文件,前面是表頭名字通過 - 連接 ,後面是csv的具體地址 ,
格式是${ p ( csv地址 ) }
csv的數據如下:
userName,password,fullName
test1,123456,test1
test2,123456,test2
最後的執行,可以寫入.sh的方式執行,也可以寫一個run.py來執行
以下是.sh文件的方式執行
#!/bin/bash
# BUILD_TAG=jenkins-Auto_Test
hrun ./testsuites/alarm/addUser.json --report-file /home/reports/$BUILD_TAG/addUser.html --save-tests
sleep 1
hrun ./testsuites/alarm/editUser.json --report-file /home/reports/$BUILD_TAG/$BUILD_TAG/editUser.html --save-tests
sleep 1
hrun ./testsuites/alarm/delUser.json --report-file /home/reports/$BUILD_TAG$BUILD_TAG/delUser.html --save-tests
執行過後生成的報告數據會在reports目錄下生成,查看報告即可