1. 程式人生 > 實用技巧 >Unittest+Python介面自動化測試進行token關聯

Unittest+Python介面自動化測試進行token關聯

引用原地址:https://blog.csdn.net/NoamaNelson/article/details/105147588

1、先封裝對json格式的資料儲存,主要是用來儲存和讀取獲取到的token值

operation_json.py

#coding:utf-8
import json
class OperetionJson:

    def __init__(self,file_path=None):
        if file_path  == None:
            self.file_path = '../case/user.json' # 獲取的token需要儲存的地方
        else
: self.file_path = file_path self.data = self.read_data() #讀取json檔案 def read_data(self): with open(self.file_path, 'r', encoding='utf-8') as fp: data1 = fp.read() if len(data1) > 0: data = json.loads(data1) else
: data = {} return data #根據關鍵字獲取資料 def get_data(self,id): print(type(self.data)) return self.data[id] #寫json def write_data(self,data): with open('../case/token.json','w') as fp: fp.truncate() # 先清空之前的資料,再寫入,這樣每次登入的token都是不一樣的
fp.write(json.dumps(data)) if __name__ == '__main__': opjson = OperetionJson() #print(opjson.get_data('shop')) data = { "user":"zhang", "passwd":123456 } opjson.write_data(data)

2、封裝如何獲取token指令碼

get_token.py

import json
import requests
from common.operation_json import OperetionJson

class OperationHeader:

    def __init__(self, response):
        self.response = json.loads(response)

    def get_response_token(self):
        '''
        獲取登入返回的token
        '''
        token = {"data":{"token":self.response['data']['token']}}
        #token = {"token": self.response['data']['token']}
        return token
	
	# 把資料寫入檔案
    def write_token(self):
        op_json = OperetionJson()
        op_json.write_data(self.get_response_token())

    def get_response_msg(self):
        reponse_msg = {"msg":self.response['msg']}
        #print("reponse_msg:", reponse_msg)
        return reponse_msg

if __name__ == '__main__':

	# 一個登入介面資料,僅供參考
    url = "http://192.168.1.117/api/user/login"

    data = {
                "username": "zhang",
                "password": "123456",
                "deviceId": 0
            }

    res = requests.post(url,data).json()
    res1 = json.dumps(res)
    print(type(res1))
    op = OperationHeader(res1)
    print(op.get_response_msg())

3、在用例管理裡邊進行呼叫

部分程式碼:test_interface.py

import unittest
import requests
import json
from common.get_token import OperationHeader

class TestMethod(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        # 登入獲取token
        cls.s = requests.session() # 建立會話
        headers = {"content-type":"application/json","Connection":"keep-alive"}
        url = "https://api***/user/login"
        data = {
            "username": "admin",
            "password": "admin"
        }
        res = requests.post(url=url, json=data, headers=headers).json()
        res1 = json.dumps(res)
        #print(type(res1))
        op = OperationHeader(res1)
        op.write_token()

    def test_001(self):
        print("123")

if __name__=="__main__":
    unittest.main()