基于 http 四种提交方式的接口自动化实例

原文转自:https://testerhome.com/topics/11566

四种方式包括POST、DELETE、PUT、GET,对应的功能是增、删、改、查。

1.POST

POST:向指定资源提交数据进行处理请求。
url格式:http://IP:port/xx
测试数据格式:{aa:11,bb:‘BB’}
详情参考前面的文章
https://testerhome.com/topics/10714

2.PUT

PUT:向指定资源位置上传其最新内容。
url格式:http://IP:port/xx/id}{
测试数据格式:{aa:11,bb:‘BB’}

2.1.转换测试数据

2.1.1.将用例数据(蓝色部分)从excel读取出来,并保存在列表中

测试用例写在excel里面,第一列是编号,第二列到倒数第7列是填写的测试数据,
最后五列分别是用例描述,提交数据,结果返回,预期结果,实际结果,是否一致。
其作用:
用例描述:描述这条用例的设计的意义
提交数据:记录由测试数据转换成的json字符串,
结果返回:记录的接口提交测试数据后所返回的结果
预期结果:用例的预期,是通过还是不通过
实例结果:测试后,该用例是否通过
是否一致:预期结果与实际结果是否一致

2.1.2.相关代码

2.1.3.代码流程图

2.1.4.生成字典格式的字符串,并保存到txt文件中

使用zip函数,将列表的dataresult的第1项(name、remark、type)与第2、3、...、最后 项的数据合并起来,以字典的形式放入列表result中。

最后将列表result中的每一条数据写到txt文件中

2.1.5.备注

涉及操作文件:
1:保存测试用例的excel文件
2:保存每条测试数据转换成json格式的txt文件
涉及方法changDataToJson()

2.2.提交数据并且记录返回结果

2.2.1.使用接口循环提交参数

2.2.2.修改url

因为put方式的提交格式是http://IP:port/xx/id
所有url必须加上id值

2.2.3.记录返回的结果

2.2.4.相关代码

2.2.5.测试流程图

2.3.写入结果

2.3.1.另存结果文件

原用例


结果文件

2.3.2.写入实际结果

获取结果返回信息
如果返回信息中含有“true”,实际结果项写入“pass”
如果返回信息中含有“false”,实际结果项写入“no pass”

2.3.3.判断预期与实际是否一致

实例化类getExcelData,
调用方法getData2
获取原用例文件中,预期列的所有数据,并保存在列表expect

类getExcelData 相关代码

将预期结果与实际结果对比,如一致,写入“是”,否则,写入“否”

2.3.4.相关代码

2.4.读取并运行所有用例

2.4.1.汇总信息

将每个模块的接口及对应用例文件等信息都记录在一个汇总的Excel文件中

2.4.2.读取列信息

读取每一列信息,并保存到对应列表中

2.4.3.运行用例

3.DELETE

DELETE:删除指定资源
格式:http://IP:port/xx/id}{

3.1.用例设计

3.1.1.用例文件各项解释

编号:用例编号
模块:该接口属于系统的模块项
接口描述:该接口url的作用
接口:提交系统的接口url
描述:该用例的意义
预期:提交接口url后,指定的记录能否成功删除
涉及sql语句:能够在数据库查询到对应资源的sql语句
测试前判断:提交接口url前,执行sql语句,判断该资源是否存在
返回:提交接口url后,系统返回的信息
测试后判断:提交接口url后,再次执行sql语句,判断该资源是否存在
实际:判断是否成功删除
是否一致:判断预期结果是实际结果是否一致

3.2.测试流程

3.2.1.流程图

3.3.步骤对应代码

3.3.1.读取并运行sql

类sqlHelper_get 的方法getCount,以sql语句为参数进行查询,并返回结果记录数

类getExcelSql 的方法runSql,读取用例文件的指定sql语句列的内容,并存放到列表sql中
实例化类sqlHelper_get,并且以列表sql中的每个元素为参数,调用方法getCount,
每一次调用方法后的返回结果,保存在列表result中

类request_delete的方法isExist,
实例化类getExcelSql,并且以用例文件为参数调用runSql
将返回结果保存到列表sqlresult中
将列表sqlresult中元素依次写入新文件中,如果元素为0,写入“记录不存在”,否则,写入“存在记录”

新文件内容如下

3.3.2.读取、执行接口url

类getExcelData的方法getData2,获取指定Excel文件指定列的内容,并存放到列表中

类request_delete的方法 run_test
实例化类getExcelData,并且调用方法getData2,获取用例文件的第四列数据(接口url),并存放到列表url中。
依次提交列表url的每一个元素,并记录返回信息

3.3.3.写入结果

提交接口url后,再查询sql,查询记录是否存在,结果保存在sqlresult
列表中
获取第六列与第八列的数据,分别保存在列表expect与before 中

将返回信息写入
如果执行SQL后,查无记录,则写入“记录不存在”;反之,写入“记录存在”

判断实际情况
1:如果在提交接口url前,执行sql并查无记录的话,写入“无法删除”(本来就没有那条记录)
2:如果分别在提交接口url前后,执行sql并查有记录的话,写入“无法删除”(执行删除接口后,记录依旧存在,删除功能出bug)
3:提交接口url前,执行sql并查有记录;执行接口url后,执行sql并查无记录的话,写入“成功删除”(删除前,存在记录,删除后,记录不存在)

将预期结果与实际结果对比,如果一致,则“是否一致”项写入“是”;
反之,写“否”
最后将内容另存到新文件

最终结果文件

4.GET

GET:向指定位置获取资源
格式:http://IP:port/xx?(参数)

4.1.用例设计

编号:用例编号
模块:该接口属于系统的模块项
接口描述:该接口url的作用
接口:提交系统的接口url
参数:接口提交的参数,如果是0,提交时不需要提交参数
描述:该用例的意义
涉及sql语句:能够在数据库查询到对应条件的sql语句
数据库查询总数:执行sql语句后,数据库返回的记录数
实际结果返回:提交接口url后,系统返回的信息
实际查询总数:提交接口所返回的记录数
是否一致:查询数据库的结果与提交接口系统返回的结果对比

4.2.测试流程

4.2.1.流程图

4.3.步骤对应代码

4.3.1.将测试数据转换为json格式

略,参考前面

4.3.2.使用接口提交对应参数,并记录返回结果

略,参考前面

4.3.3.运行sql并记录结果

类sqlHelper_get 的方法getCount,以sql语句为参数进行查询,并返回结果记录数

类getExcelSql 的方法runSql,读取用例文件的指定sql语句列的内容,并存放到列表sql中
实例化类sqlHelper_get,并且以列表sql中的每个元素为参数,调用方法getCount,
每一次调用方法后的返回结果,保存在列表result中

4.3.4.写入结果

将查询数据库的结果与接口提交参数后系统返回的结果做对比
如果一致,“是否一致”项写“是”,反之,写“否”

最终结果展示

共收到 6 条回复

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值