前言
別把生活想得太重,別把自己看得太輕。
一、debugtalk.py介紹
輔助函數,可在debugtalk.py文件中自定義函數,完成一些yml測試腳本完成不了的功能。
二、debugtalk.py 應用舉例
# debugtalk.py 中存在方法
# 產生1個自定義范圍的隨機數
def get_randomint(n,m):
return random.randint(n,m)
# 默認產生3個自定義范圍的隨機數(參數化時使用)
def get_randomints(n,m,count=3):
random_list = []
for i in range(0,count):
random_list.append( random.randint(n,m) )
return random_list
在測試用例文件中調用上述函數的格式如下:
- config:
name: "驗證百度搜索是否正確"
base_url: "https://www.baidu.com"
variables:
- search_word: ${get_randomint(1,20)}
- test:
name: "百度搜索請求"
request:
url: "/s"
method: GET
headers:
User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
Accept-Encoding: "gzip, deflate, br"
Accept-Language: "zh-CN,zh;q=0.9"
params:
wd: $search_word
validate:
- eq: ["status_code",200]
如上測試用例yml文件內容,在 config 的 variables 下 調用了debugtalk.py文件中的get_randomint函數。並把函數返回值傳遞給了定義的 search_word 變量。
三、debugtalk.py 傳參時的小問題
# debugtalk.py文件內容
def pri(content):
print(content)
通過上述代碼可以發現 debugtalk.py 文件中有一個輸出到控制台函數,需要傳入一個 content 參數,平時傳參用起來沒有問題。但如下面事例代碼時:
- config:
name: 驗證能否打開主網頁
base_url: http://www.hnxmxit.com
# 測試步驟
- test:
name: open hnxmxit mainpage api
setup_hooks:
- ${pri(step_01:打開新夢想主頁)}
request:
url: /
method: GET
validate:
- eq: ["status_code",200]
如上述代碼, setup_hooks中調用了pri方法,傳遞的參數中包含 英文 : 號,會導致調用該pri方法失效。類似的字符串有 [] 、: 。解決方法是去掉 : 等
四、小結
歡迎廣大讀者們提出對該博客有遺慮的地方,或者有辦法解決上述問題的朋友都可以加V、QQ私聊。