接口自动化测试复习巩固第二天,管理员后端验证和接口抓包+requests实现

发布时间 2023-12-25 14:39:20作者: xuhao2008

接口自动化测试第二天,需要用到的第三方库有os,openpyxl,json,pytest,requests

首选我们今天的目标是写出一个测试登录用例的脚本,这里我用的是分层设计,整个框架暂时被分为工具层,测试数据层,用例层。

工具层:这里我会先放目前需要用到的脚本

测试数据层:用例执行时需要的测试数据,我会以excel格式存放在这里

用例层:这里放的是自己编写的自动化测试脚本

首先先确定自己需要的工具,目前为止,我需要的工具有2个,一个是读取excel测试数据的工具,一个是识别整个框架的文件位置工具。这里开始写

1.读取excel数据的工具

from openpyxl import load_workbook

class MyExcel:
   def __init__(self,excelpath,sheet_name):
       #打开本地文件
       self.wb = load_workbook(excelpath)
       self.sh = self.wb[sheet_name]

   def select_sheet(self,sheet_name):
       self.sh = self.wb[sheet_name]

   def read_all_data(self):
       all_datas = list(self.sh.values)
       titles = all_datas[0]
       case_list = []
       for row_data in all_datas[1:]:
           new_dict = dict(zip(titles,row_data))
           print(new_dict)
           case_list.append(new_dict)
       return case_list

2.识别文件位置的工具

import os

#项目路径
basedir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

#测试数据excel目录
testdata_dir = os.path.join(basedir,"testdata")

两个工具已经写好了,接下来是准备测试数据

3.测试数据的准备

#注意,这里的req_data数据用json格式来写

4.自动化测试脚本

import os
import json
import pytest
import requests

from tools.handle_path import testdata_dir
from tools.handle_excel import MyExcel

#读取测试数据 - excel中一行一个用例数据
me = MyExcel(os.path.join(testdata_dir,"cases.xlsx"),sheet_name="登录")
all_datas = me.read_all_data()


class TestAdminLogin:
   @pytest.mark.parametrize("case",all_datas)
   def test_login(self,case):
       resp = requests.request(case.get("method"),case.get("url"),
                               json=json.loads(case.get("req_data")))
       print(resp.status_code)
       print(resp.text)
       #断言
       assert case.get("expected") in resp.text

注意:因为在excel中的req_data是用json格式写的,所以在python中要将它转换为字典格式,需要导入一个第三方库json来进行转换

json.loads()