首页 > 技术文章 > 接口自动化的个人思路

zorzhang 2020-06-09 15:22 原文

  整体思路大概就是:先导库,创建头部header,将浏览器配置信息放入头部,头部中创好token、cookie等,根据不同项目中不同来定,创建类,创建完类创建函数,每个函数所执行对应的接口,永远都要先执行登录接口,将登录后获取对应的token、session、cookie等,这些保持登录状态的东西对于后面所有登录后才能进行的操作都有用,获得到的token将其放入之前创建好的头部中:header['token'] : response_token。

  测试框架有unittest框架,下面写下unittest框架:

    

import unittest
import requests
import re

header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36',
    'token': ''
}

class Jktest(unittest.TestCase):
    #先执行setUp,在执行所有以test开头的函数,最后执行tearDown
    def setUp(self):
        url = "xxxxxxx"

    def tearDown(self):
        print("所有用例执行结束")

    def login(self):
        self.login_path = url + "/xxx/xx/xx"
        data = {
            'name': ''
            'password': ''
        }
        response = requests.post(self.login_path,data=data,headers=header)
        response_token = ''.join(re.findall('"token":"(.*?)"',response.text))
        header['token'] = response_token

  还有一种简单的思路,单进程的:

import requests
import re

header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36',
    'token': ''
    }

class xuanw(object):
    def __init__(self,name,password,url_head):
        self.name = name
        self.password = password
        self.url_head = url

    #用户登录
    def login(self):
        url = self.url_head + "/xx/xxx"
        data = {
                'mobile': self.name,
                'password': self.password
        }
        response = requests.post(url,data=data,headers=header)
        # print(data)
        # print(response.text)
        response_msg = ''.join(re.findall('"message":"(.*?)"',response.text))
        response_token = ''.join(re.findall('"token":"(.*?)"',response.text))
        header['token'] = response_token
        # print(response_token)
        msg = response_msg.encode('utf-8').decode('unicode-escape')
        if msg == "登录成功!":
            pass
        else:
            print("登录遇到问题:",msg)

    def add_group(self,groupName):
        url = self.url_head + "/xx/xxx"
        data = {
            'group_name': groupName
        }
        response = requests.post(url,data=data,headers=header)
        response_msg = ''.join(re.findall('"message":"(.*?)"',response.text))
        msg = response_msg.encode('utf-8').decode('unicode-escape')
        if msg == "保存成功":
            pass
        else:
            print("保存分组:",msg)


name = ""
password = ""
url = "https://xxxxxxx"
run = xuanw(name,password,url)
run.login()
run.add_group("测试2")

 

推荐阅读