Debugtalk的使用場景及特點
- 在做接口的時候會有功能無法實現(xiàn)常柄,就需要開發(fā)對應(yīng)功能
- 創(chuàng)建簡單功能實現(xiàn)系統(tǒng)需要完成的功能操作
- 將全局變量或者自定義變量放在里面
來源網(wǎng)路.png
使用debugtalk內(nèi)置函數(shù)
- 內(nèi)置函數(shù)sleep
import time
def sleep(n_secs):
time.sleep(n_secs)
- 在login請求中添加等待時間西潘,使用sleep方法
直接使用debugtalk里面的函數(shù)哨颂,不需要在需要的yaml文件中引用威恼,因為每次執(zhí)行前會自動到debugtalk文件中搜索對應(yīng)函數(shù)
request:
headers:
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36
method: GET
url: https://mubu.com/
teardown_hooks:
- ${sleep(5)}
測試報告.png
debugtalk創(chuàng)建函數(shù)并使用
- 創(chuàng)建一個函數(shù)箫措,生成隨機數(shù)
def get_timestamp():
return str(int(time.time()*1000))
- 在編輯title的請求中添加一個時間隨機數(shù)
variables:
documentId: 28nRA1U6DVz
memberId: "1576021112575"
userId: "3878131"
new_title: "New_title_Sam${get_timestamp()}"
data:
message:
content:
- name: nameChanged
original: test123
title: ${new_title}
documentId: ${documentId}
type: CHANGE
version: 3
viewType: OUTLINE
- 執(zhí)行以后就能在title的后面生成一個以日期字符串的隨機數(shù)
hrun testcases/change_title.yml
報告樣式.png
網(wǎng)站樣式.png
創(chuàng)建一個函數(shù)打印請求參數(shù)值
- 創(chuàng)建打印函數(shù)
def print_parameter(doc_id):
print("the paramter is: {}".format(doc_id))
- 在請求中使用
request:
headers:
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36
method: GET
url: https://mubu.com/doc${documentId}
setup_hooks:
- ${print_parameter($documentId)}
extract:
memberId: "memberId: '(.*)'"
- 執(zhí)行請求并顯示結(jié)果
hrun testcases/create_doc.yml
log.png
debugtalk使用總結(jié):
可以實現(xiàn)如下的功能
1.數(shù)據(jù)初始化
2.數(shù)據(jù)庫連接
3.函數(shù)的創(chuàng)建
使用環(huán)境變量ENV保存參數(shù)
官方文檔介紹
https://cn.httprunner.org/prepare/dot-env/
-`將常用的參數(shù)比如環(huán)境信息放在ENV文件中
USERNAME=**
PASSWORD=**
image.png
- 在請求體的前面創(chuàng)建參數(shù)并引用環(huán)境變量值
這里使用ENV關(guān)鍵字表示參數(shù)是從ENV文件夾的環(huán)境變量中取值
config:
name: testcase login the mubu
variables:
password: ${ENV(PASSWORD)}
phone: ${ENV(USERNAME)}
verify: False
- 將我們使用的參數(shù)進行替換
- name: /api/login/submit
request:
data:
password: ${password}
phone: ${phone}
- 執(zhí)行并查看結(jié)果是生效的
hrun testcases/login.yml
log.png
測試報告.png
報告詳情.png
參數(shù)化的實現(xiàn)
官方文檔的介紹
1.官方介紹使用3中形式
2.第1種是直接將參數(shù)按照集合形式寫出來惧互,這種主要用于參數(shù)少喊儡,使用參數(shù)比較容易修改
3.第2種是將參數(shù)寫到csv文件中稻据,按照字典形式存放
4.第3種是通過函數(shù)的形式,不固定的參數(shù)通過函數(shù)計算實現(xiàn)匆赃,比如時間形式今缚,隨機數(shù)形式等
https://cn.httprunner.org/prepare/parameters/
- 示例如果我們有多組的用戶登錄,就需要將測試的時候參數(shù)化
- 下面會將所有的參數(shù)放進csv文件中進行保存
- 數(shù)據(jù)從csv文件中讀取并發(fā)送請求
創(chuàng)建csv文件
- 在根目錄創(chuàng)建一個文件夾data存放csv
-
創(chuàng)建csv文件
image.png
添加賬戶信息
- 添加是按照key,value形式創(chuàng)建
- 數(shù)據(jù)由逗號(,)分隔
屏幕截圖.png
在testsuites創(chuàng)建用例集
image.png
創(chuàng)建suite腳本信息
- config信息主要描述用例集信息
- testcases下面可以創(chuàng)建多個用例集合,每個測試用例-分隔
- testcase標記需要執(zhí)行的測試用例名稱囱淋,這里login.yml
- parameters下面就是包含的測試數(shù)量實現(xiàn)方式妥衣,這里使用的是讀取csv文件
- 格式是需要大寫字母P,然后圓括號()涮较,包含csv文件的相對路徑
- 重點是參數(shù)名:phone-password這2個參數(shù)是需要跟csv文件表頭一致冈止,順序也需要一致候齿。然后每個參數(shù)
中間是使用中杠(-)進行分隔慌盯。比如csv文件中是按照phone,password的表頭,那這里就按照phone-
password的形式表示
config:
name: login with different user
verify: False
testcases:
-
name: login system wit user
testcase: testcases/login.yml
parameters:
phone-password: ${P(data/account.csv)}
執(zhí)行test suite的腳本
hrun testsuites/login_multipulte_user.yml
查看報告
-
報告中會顯示多個登陸信息
報告截圖.png -
查看失敗報告詳細信息
報告詳情.png 因為2組登陸的信息是含有1組錯誤的賬號密碼,所以會有錯誤的內(nèi)容灭必。