目錄
1.用例準備
1.1生成用例
1.2用例引數化
1.3自定義函式
2.執行用例
1.通過fiddler捕捉get_token並轉換檔案格式為.yml。操作方法見httprunner使用文件案例錄製並轉換生成測試用例過程出現的問題及解決辦法
2.將用例放到已生成好的測試用例結構目錄中,目錄的生成見:httprunner專案檔案和測試用例組織
3.為了閱讀方便,可以使用notepad++或者pycharm來開啟此用例檔案。
4.開啟後的原始檔案如下所示,並在指令碼中加了一些注釋:
config:
name: testcase description #必填,測試用例名稱,測試報告以此作為標題
variables: {} #非必填,全域性變數,作用域為整個testcase
teststeps:
- name: /api/get-token #必填,測試步驟名稱
request: #必填,測試步驟請求資訊
headers: #請求頭中的資訊
postman-token: cc0a84c0-7c4c-4634-8d36-7bd58563045a
user-agent: postmanruntime/7.24.0
device_sn: fwgrio7cna50dsu
os_platform: ios
user_agent: ios/10.3
json: #請求體body中的資訊
sign: 9c0c7e51c91ae963c833a4ccbab8d683c4a90c98
method: post #請求型別
url: #請求位址
validate:
- eq:
- status_code
- 200
- eq:
- headers.content-type
- eq:
- content.success
- true
- eq:
- content.token
- dkbnlkokkvnkq8hj
首先,在config中的variables模組申明變數、並賦值;
其次,在用例部分引用變數($var)或呼叫函式賦值($);
再次,將自定義函式寫在debugtalk.py中。
最後debugtalk.py函式中定義相關變數和引數,詳細內容參見httprunner中文使用手冊的hook機制
此檔案在自動生成的結果目錄的根目錄中:
引數化後的用例如下所示:
config:
variables: #非必填,宣告全域性變數,並賦值,作用域為整個testcase
device_sn: $ #生成 15 位長度的隨機字串並賦值給 device_sn,函式在debugtalk.py中定義
os_platform: 'ios'
teststeps:
- name: /api/get-token #必填,測試步驟名稱
request: #必填,測試步驟請求資訊
headers: #請求頭中的資訊
postman-token: cc0a84c0-7c4c-4634-8d36-7bd58563045a
user-agent: postmanruntime/7.24.0
device_sn: $device_sn
os_platform: $os_platform
user_agent: ios/10.3
json: #請求體body中的資訊
method: post #請求型別
url: #請求位址
validate:
- eq:
- status_code
- 200
- eq:
- headers.content-type
- eq:
- content.success
- true
加入自定義函式後的debugtalk.py檔案如下所示:
import os
import random
import string
import time
import hmac
import hashlib
secret_key = "debugtalk"
def sleep(n_secs):
time.sleep(n_secs)
def gen_random_string(str_len): #生成 15 位長度的隨機字串並賦值給 device_sn
random_char_list =
for _ in range(str_len):
random_char = random.choice(string.ascii_letters + string.digits)
random_string = ''.join(random_char_list)
return random_string
def get_sign(*args): #根據簽名演算法生成 sign 值
content = ''.join(args).encode('ascii')
sign_key = secret_key.encode('ascii')
sign = hmac.new(sign_key, content, hashlib.sha1).hexdigest()
return sign
執行hrun d:\httprunner\api_api\testcases\get_token_new.yml,執行此單個用例檢視結果
執行完成後,到reports目錄下可檢視輸出的報告檔案
開啟報告檔案檢視到的內容如下:
httprunner變數 引數關聯與引數化
httprunner是基於requests的,所以處理思路與python中處理一樣 目錄1 變數 2 httprunner引數關聯 3 httprunner引數化 1 變數 比如說有一種場景,介面a需要傳乙個引數m值才能返回介面,介面b需要傳引數m的值以及a的返回值才能獲取結果,這時候可以把引數的值...
httprunner進行介面測試 引數化
1,用例格式 config test test 即 全域性配置 用例 用例 config模組裡面定義的是整個文字測試集的變數,即全域性變數 test模組裡面定義的是具體介面請求,下面看個具體例子 2,舉個例子 以某快遞查詢介面為例,新建乙個yaml檔案,命名為test post api.yaml c...
HTTPRunner實踐二 引數化之生成UUID
介面測試中,需要使用到uuid,用來生成唯一id。uuid是128位的全域性唯一識別符號,通常由32位元組的字串表示。它可以保證時間和空間的唯一性,也稱為guid,全稱為 uuid universally unique identifier,python 中叫 uuid。它通過mac位址 時間戳 命...