原文转自: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中。
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
将预期结果与实际结果对比,如一致,写入“是”,否则,写入“否”
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中