第一个接口自动化框架atp

接口自动化的测试框架。
框架,一堆工具的集合。
1.获取用例
2.执行用例
3.校验结果
4.产生报告

框架

步骤:
1.读excel获取到所有的case 用xlrd模块
2.根据测试用例调用接口 requests
3.校验结果 if
4.结果写入excel xlutils
5.生成报告,发送邮件 yagmail

写代码:

方法都放在工具类里,即tools.py
获取用例
读取excel中的所有用例的方法
lib中的tools.py
 1 import xlrd
 2 from config.setting import log
 3 
 4 def readExcel(file_path):
 5     try:
 6         book  = xlrd.open_workbook(file_path)
 7     except Exception as e:
 8         log.error('打开用例出错,文件名是%s'%file_path)
 9         return []#返回空的list,没有数据
10     else:
11         all_case = [] #存放所有的用例
12         sheet = book.sheet_by_index(0)#获取sheet页
13         for i in range(1,sheet.nrows):
14             #1代表从第二行开始,第一行是标题
15             #sheet.nrows是指一共有多少行数据
16             row_data = sheet.row_values(i)#获得一整行数据
17             all_case.append(row_data[4:8])#所有用例
18             # url, method, data, check = row_data[4],row_data[5],row_data[6],row_data[7]
19             #url,method,data,check这四列
20         return all_case
21 res = readExcel(r'C:\Users\Mezhou\PycharmProjects\untitled\day10\atp\cases\测试用例.xlsx')
22 print(res)

结果:


根据测试用例调用接口

检验接口返回是否是json串,自己封装my_request.py

 1 import requests
 2 from config.setting import log
 3 def post(url,data,header=None,cookies=None,is_json=False):
 4     try:
 5         if is_json:
 6             res = requests.post(url,json=data,headers=header,cookies=cookies).text
 7         else:
 8             res =requests.post(url,data=data,headers=header,cookies=cookies).text
 9     except Exception  as e:
10         log.error('接口请求出错,%s'%e)
11         res = str(e)
12     return res
13 def get(url,data,header=None,cookies=None):
14     try:
15         res = requests.get(url,params=data,headers=header,cookies=cookies).text
16     except Exception as e:
17         log.error('接口请求出错,%s'%e)
18         res = str(e)
19     return res
校验结果
 1 #返回结果进行替换,将冒号引号空格等替换成等号
 2     '''{
 3     "code": 100,
 4     "name: "zjr"}'''
 5  #替换成   code=100  name=zjr 这种格式
 6 #res是返回的结果,check是校验的数据
 7 def check_res(res:str,check:str):
 8     new_res = res.replace('": "', '=').replace('": ', '=')
 9     for c in check.split(','):
10         if c not in new_res:
11             return '失败'
12         return '通过'

将结果写入excel

1 def write_res(file_name,res_list):#入参是文件名和返回结果
2     book = xlrd.open_workbook(file_name)
3     new_book = copy(book)#复制一个book
4     sheet = new_book.get_sheet(0)
5     for row,data in enumerate(res_list,1):#enumerate枚举,从第2行开始,第一行是标题
6         res,status = data
7         sheet.write(row,8,res)#写入返回结果和运行状态
8         sheet.write(row,9,status)
9     new_book.save(file_name)

 将表格中用户名密码转换成字典

1 def str_to_dict(s:str,seq='&'):
2     #username=niuhanyang&password=123456
3     #['username=niuhanyang,password=123456']
4     d = {}
5     if s.strip():#非空即真,若为空直接返回一个空字典
6         for tmp in s.split(seq):
7             k,v = tmp.split('=')#username,niuhanyang
8             d[k]=v
9     return d

运行用例

 1 def run_case(all_case):
 2     all_res=[]#存放所有用例结果
 3     for case in all_case:
 4         url,method,data,check = case
 5         data = str_to_dict(data)#把请求参数转成字典
 6         if method.upper()=='POST':
 7             res = my_request.post(url,data)
 8         else:
 9             res = my_request.get(url,data)
10         status = check_res(res,check)
11         all_res.append([res,status])
12     return all_res

 

 

 

 



转载于:https://www.cnblogs.com/Mezhou/p/9882592.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本课程是接口测试的基础+进阶+高阶的实战精品课程。 老师从多角度、多方位基于Demo进行讲解,力求做到认真细致讲好课程的每一要点。 全方位助力学员掌握接口测试的技术要领,快速跃升为接口测试方面的高手。 Demo具备很好的通用性及移植性,可以快速运用于实际接口测试中。 主讲老师为资深高级技术专家。毕业于电子科技大学。先后工作于多家知名外企,知名通信民企,知名IT公司。◇ 具备区块链领域高级测试解决方案设计、专家级测试开发、团队管理培训经验。◇ 具备专家级自动化测试解决方案、自动化测试平台框架设计开发、自动化测试团队管理培训经验。◇ 具备专家级的功能专项测试、性能专项测试经验及丰富的渗透测试经验。◇ 具备丰富的持续集成/持续交付(CI/CD)开发、实施及运维经验。◇ 具备丰富的C#/Java/Delphi/VB/C++/Python/Tcl/Groovy/Shell等开发及脚本开发经验◇ 具备20年的IT互联网工作经验。先后担任过项目经理,测试技术经理,测试总监以及专家级技术顾问等职务。独立开发完成有如下自动化测试框架及平台◇ GUI自动化测试框架(TSL)◇ ATF自动化测试框架(Tcl/Tk)◇ ATP自动化测试平台(C#/Java)◇ SoapUI接口自动化测试框架(Groovy/华为)◇ 持续集成自动化打包框架(Java/华为)◇ 区块链性能测试框架(Python)等。擅长框架/平台设计开发、团队管理、团队技能提升培训,技术瓶颈突破等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值