3.测试架构规划及用例设计
大约 2 分钟学习笔记软件测试接口测试
一、 测试架构规划
四文件夹:
docs
: 主要用于存放 和项目相关的文件;logo
: 主要用于存放 项目执行的日志;report
: 用于存放报告的 原始数据;data
: 用于存放 测试数据;
四包文件 :
libs
: 用于存放 基本的 代码;configs
: 用于存放 配置文件;test_case
: 用于存放 测试用例;tools
: 用于存放 封装的 工具;
二、接口测试用例设计
- 编号
- 模块
- 接口名称
- 优先级
- 标题
- URL
- 前置条件
- 请求方式
- 请求头
- 请求参数
- 预期结果
- 响应预期结果
- 实际结果
三、自动化结合 excel 用例执行
配置:
# configs/confing.py
HOST = 'http://121.41.14.39:8082'
登录:
# libs/login.py
import requests
import hashlib
from configs.config import HOST
def get_md5(password):
# 1- 实例化加密对象
md5 = hashlib.md5()
# 2- 进行加密操作
md5.update(password.encode('utf-8'))
# 3- 返回加密后的结果
return md5.hexdigest()
class Login: # 登录类
def login(self, inData, getToken=False):
url = f'{HOST}/account/sLogin'
# 请求体----字典格式编辑
# 调用加密函数 字典修改值: 字典名【键名】 = 新的值
inData['password'] = get_md5(inData['password'])
payload = inData # 可以不写
resp = requests.post(url, data=payload)
if getToken: # 获取token
return resp.json()['data']['token'] # token值
else:
return resp.json() # 接口的响应数据
读取、写入文件:
# tools/excelControl.py
import xlrd # 要安装的第三库 pip install xlrd
import json
def get_excelData(sheetName, caseName):
resList = [] # 存放结果
excelDir = '../data/外卖系统接口测试用例-V1.5.xls'
# formatting_info=True 保持原表样式
workBook = xlrd.open_workbook(excelDir, formatting_info=True)
workSheet = workBook.sheet_by_name(sheetName)
idx = 0 # excel第0行数据
for one in workSheet.col_values(0): # 6次
if caseName in one: # 运行你需要运行的测试用例
reqBodyData = workSheet.cell(idx, 9).value # cell(行号,列号).value
respData = workSheet.cell(idx, 11).value # cell(行号,列号).value
resList.append((json.loads(reqBodyData), json.loads(respData)))
idx += 1 # 轮询下一行数据
return resList
# 新建空的excel xlwt
from xlutils.copy import copy # 拷贝函数
def set_excelData(sheetIndex):
excelDir = '../data/外卖系统接口测试用例-V1.5.xls'
# formatting_info=True 保持原表样式
workBook = xlrd.open_workbook(excelDir, formatting_info=True)
workBookNew = copy(workBook)
workSheetNew = workBookNew.get_sheet(sheetIndex) # 打开复制的excel其中一个表--登录模块
return workBookNew, workSheetNew
执行测试用例:
# test_case/test_login.py
# 1、读取excel数据
from tools.excelControl import get_excelData, set_excelData
from lib.apiLib.login import Login
workBookNew, workSheetNew = set_excelData(0) # 复制出来的表文件对象,子表对象
resList = get_excelData('登录模块', 'Login')
for one in resList: # [(body1,resp1),(),()]
print(one)
# 2- 把excel读取的数据关联到请求代码里
for one in range(0, len(resList)): # one---012345
res = Login().login(resList[one][0]) # 传入对应行的body
print(res)
# 3-实际与预期相对比,结果写入测试结果到excel----做判断--断言
if res['msg'] == resList[one][1]['msg']:
# 写入成功!
workSheetNew.write(one + 1, 12, 'pass') # workSheetNew.write(行号,列号,值)
else:
# 写入没有成功!
workSheetNew.write(one + 1, 12, 'fail') # workSheetNew.write(行号,列号,值)
workBookNew.save('./res.xls')
四、 扩展操作 --- 增加脚本模板
"""
-*-coding : UTF-8 -*-
@File : ${NAME}.py
@Time : ${DATE} ${TIME}
@Author : Pupper
@Email : Pupper.cheng@gmail.com
@Software : ${PRODUCT_NAME}
"""