1. 程式人生 > 其它 >robotest介面自動化測試之引數傳遞之global全域性變數

robotest介面自動化測試之引數傳遞之global全域性變數

技術標籤:介面自動化測試Python軟體測試

不積跬步,無以至千里;不積小流,無以成江海。 ——荀況

每天進步一點,兩天就是兩點,.....依次類推,堅持下來你將變得渾身散發著迷人氣質!

接上期文章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()

走過路過不要錯過,別忘了點贊+關注,如果還有其他問題可以聯絡我,一起討論!

另外別忘了掃碼支援一下