學習httprunner記錄03

2022-09-22 09:12:18 字數 1574 閱讀 8052

使用httprunner3.x版本

python版本是3.6

測試環境是zen dao

以下為指令碼:

# note: generated by httprunner v3.1.0

# from: assign_me.har

import re

from httprunner import httprunner, config, step, runrequest, runtestcase

class testcaseassignme(httprunner):

config = (

config("testcase description")

.verify(false)

.variables(**{})

.base_url("")

)teststeps = [

step(

runrequest("login with username and password")

.post("/zentao/user-login.html")

.with_headers(**)

.with_data(

).validate()

.assert_equal("status_code", 200)

.assert_equal('headers."content-type"', "text/html; language=utf-8;charset=utf-8")

.assert_equal('body.result', 'success')),

step(

runrequest("check bugs that are assigned to me")

.get("/zentao/bug-browse-1-0-assigntome.html")

.with_headers(

**).validate()

.assert_equal("status_code", 200)

.assert_equal(

'headers."content-type"', "text/html; language=utf-8;charset=utf-8"

).assert_contains('body', "data-id='6'".encode('utf-8'))),]

if __name__ == "__main__":

testcaseassignme().test_start()

1  採用charles錄製,匯出

2 使用har2case 將har檔案轉換為python指令碼,如上;

3 修正指令碼,主要是去除不需要的部分,修改斷言部分,引數化url部分

與手寫pytest的區別:

最主要的一點是:

httprunner的作者設定為介面呼叫返回的都是json格式的資料,所以httprunner的斷言函式都是依據此假設封裝的

這一點對我不適用

手寫pytest指令碼的話完全不受此限制,可以方便的結合re模組從html中提取資訊做斷言

但是httprunner錄製指令碼然後轉換的做法,生成指令碼的速度確實是非常快