httprunner框架-項目實例

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目錄下生成,查看報告即可

參考:
https://cn.httprunner.org/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章