robotest介面自動化測試之引數傳遞之global全域性變數
阿新 • • 發佈:2021-01-02
不積跬步,無以至千里;不積小流,無以成江海。 ——荀況
每天進步一點,兩天就是兩點,.....依次類推,堅持下來你將變得渾身散發著迷人氣質!
接上期文章https://blog.csdn.net/u011640418/article/details/111999768
除了把資料存到檔案中,再使用程式碼進行讀取,我們還可以通過global去操作
比如這裡我們在函式定義之前我們設定了一個字串格式的token
我們可以在test_testcase1 這個函式內通過global去給空字串token賦值
test_testcase2再通過global token來獲取已經賦值後的變數
import unittest token = '' class test(unittest.TestCase): def test_1(self): global token token = '我是個無情的token,嗷嗚!' def test_2(self): global token print('token:'+token) if __name__ == '__main__': unittest.main() test = test() print(test.test2())
介面測試中這樣用
import unittest import requests import os from ddt import ddt, file_data, unpack from common.getpath import data_path import json import yaml post_data = os.path.join(data_path, 'post_data.yaml') post_path2 = os.path.join(data_path, 'post_data2.yaml') token_path = os.path.join(data_path, 'token.yaml') token = '' @ddt class parameter_association(unittest.TestCase): @file_data(post_data) @unpack # 二次分解元組 def test_testcase1(self, **kwargs): url = kwargs['url'] headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) \ AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"} data = {"name": kwargs['name'], "pwd": kwargs['pwd'] } # 傳送post請求 response = requests.post(url=url, headers=headers, data=data) # 因為返回值是一個json字典一樣的字串:{"code": 200, "message": "登入成功", "token": "@R_r18sQ8#"} # 使用json.loads()就可以自動轉為最符合的資料型別,然後從轉換後的字典中取token 的值 global token token = json.loads(response.text)['token'] # 把需要存的資料結構定義好 我需要儲存成- token: '@R_r18sQ8#' print(token) print(response.text) @file_data(post_path2) @unpack # 二次分解元組 def test_testcase2(self, **kwargs): global token url = kwargs['url'] # r 讀取模式 data = {"name": kwargs['name'], "token": token } response = requests.post(url=url, data=data) print(url) print(data) print(response.text) if __name__ == '__main__': unittest.main()
走過路過不要錯過,別忘了點贊+關注,如果還有其他問題可以聯絡我,一起討論!
另外別忘了掃碼支援一下