代码结构:python---atp自动化测试框架

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']
View Code

相关文章: