代码结构:
bin---启动文件 cases---存放测试用例 conf ---配置文件 core --- 核心代码 logs --- 日志 report --- 存放测试结果 readme.txt --- 使用说明 requirements.txt-----保存所有安装的第三方模块,方便代码移植到其他电脑
写代码思路:
1、读excel取出所有用例 2、解析用例 1) 解析入参: a =1,b=1,phone=<phone> 把入参变成字典 {'a'=1,'b':2,'phone':15326687945} url 请求方式:post 2) 发请求,获取到返回结果 MyRequest 3) 解析返回 a、解析检查点 'k=1,age=18,name!=abc' [['k','=','1'],['age','=','18'],['name','!=','abc']] b、获取实际结果做对比,检查用例通过还是失败 3、返回结果写入到excel中 4、生成报告,发邮件
atp测试缺点:不能测试有业务流程(即接口间有依赖)的情况
readme.txt
写用例的支持参数化,支持以下参数化: <phone> 自动产生手机号 <id_card> 身份证号 <email> 邮箱 <cur_time> 当前时间戳
requirements.txt
xlrd
requests
jsonpath
xlutils
nnlog
yagmail
case_operation.py
import xlrd from core.my_requests import MyRequest ''' 读exce获取用例 ''' def get_case(path): all_case = [] #定义一个二维数组,保存所有的测试用例 book = xlrd.open_workbook(path) sheet = book.sheet_by_index(0) for i in range(1,sheet.nrows): #第一行表头不要 row_data = sheet.row_values(i)[4:8] #切片(顾头不顾尾),取4-7列:请求url、请求方式、请求数据、预期结果 all_case.append(row_data) return all_case #[[url,get,data,check],[url,get,data,check]] ''' 发request请求 ''' def send_request(url,method,data,headers=None): req = MyRequest(url,data,headers=headers) #实例化一个MyRequest实例 if method.upper()=="POST": #测试用例中的请求方式可能是大写或小写 res = req.post() elif method.upper() =='GET': res = req.get() else: res = {"data":"暂时不支持该方法!"} return res['data']