接口测试框架


        一个接口设计用例时有可能会十几条到几十条都有可能,多个接口就有很多了,这时候我们可以考虑到自动化测试接口,采用数据驱动方式,把数据写在excel表格中,代码做封装,用数据驱动测试,两部分相互独立。python中用ddt模块来做数据驱动,代码简单好维护,调试也方便

一、主要功能及技术栈

1. 主要功能框架:

① 公共模块(common):存放与业务相关的公共函数,封装起来放在common文件中,供其他接口实际调用时使用

② 测试用例(testCase):主要存放接口测试用例(脚本命名规则:test_脚本名称;一个测试类对应一个接口)

③ 测试数据(testData):存放测试用到的数据

④ 测试报告(report):生成测试报告以邮件形式发送(html / text /smtp)

⑤ 全局执行文件main:Python定义的main()函数只有当该Python脚本直接作为执行程序时才会执行;当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行

2. 技术栈:python + ddt + unittest + requests + htmltextrunner

3. 接口测试用例编写步骤

① 导入库文件  ② 定义类  ③ 为类定义方法,并在该方法内实现接口脚本的编写  ④ 运行结果  ⑤ 结果校验

二、接口测试框架实例编写

本期接口测试框架需求:实现wanandroid网站注册、登录、退出登录三个接口的接口自动化测试脚本的编写

git地址:https://github.com/annielulu/interfaceTest

1)框架设计:

common:configHttp,readConfig,readExcel,writeExcel,configEmail

testCase:使用unittest / ddt /requests实现接口测试脚本编写

testData:使用excel表格存放测试数据

report:以邮件形式输出测试报告

2)实现思路:

1. 通过抓包工具抓到接口数据并存放在excel表格中(urlSheet / paramSheet / assertSheet)

2. 获取excel数据(定义一个readExcel类)

① 找到excel文件并打开

② 定位sheet页,定位行和列

③ 读取excel数据

④ 组装测试数据,变为一条正确的匹配的接口测试数据

④ return data给testCase模块

3. 编写testCase模块

① 调用readExcel模块,拿到测试数据

② 根据接口的请求方式来判断调用什么方法(get请求 / post请求)

③ 校验get请求 / post请求的数据

④ 保存执行结果

⑤ 写入excel中(writeExcel模块)

4. writeExcel模块

① 找到excel,读取数据

② 复制excel对象

③ 根据id写入对应的实际结果和接口测试状态

5. 发送测试报告

三、ddt及unittest介绍

1. 背景介绍: python的unittest没有自带数据驱动功能,所以如果要使用unittest同时又想使用数据驱动,那么就可以使用ddt(Data-Driven Tests)来完成。

2. 使用步骤:① 导入ddt包 ② 用装饰器装饰@ddt ③ 传入参数,执行

3. 代码实例:

 

四、python读写excel

1. 使用xlrd和xlwt读写excel(需要下载安装xlrd库和xlwt库 -- pip install xlrd)

①打开excel

readbook = xlrd.open_workbook(r'\test\canying.xlsx')

② 获取读入的文件的sheet

sheet = readbook.sheet_by_index(1)                #索引的方式,从0开始

sheet = readbook.sheet_by_name('sheet2')      #通过名字定位sheet页

allsheetnames = readbook.sheet_names()        #返回所有sheet页名字组成的列表

③ 获取sheet的最大行数和列数

nrows = sheet.nrows      #行

ncols = sheet.ncols        #列

④ 获取某个单元格的值

lng = sheet.cell(0,0).value          #获取1行1列的表格值

lat = sheet.cell(1,4).value          #获取2行5列的表格值

 获取某行/某列的值

 row_value = sheet.row_values(x)      #获取x行的值,从0开始计数

col_value = sheet.col_values(y)         #获取y列的值,从0开始计数

⑤ 打开将写的表并添加sheet

writebook = xlwt.Workbook()      #打开一个excel

sheet = writebook.add_sheet('test')       #在打开的excel中添加一个sheet

⑥ 将数据写入excel

sheet.write(i,0,result[0])        #写入excel,i行0列

sheet.write(i,1,result[1])

⑦ 保存

writebook.save('answer.xls')     #一定要记得保存

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM