最终完整脚本实现
#把测试脚本结构优化,脚本参数化以及测试报告所有的技术进行合并importrequestsimportcsv#定义测试类classWorkflow_Test_v6():#接口测试通用脚本defuserinterface_test(self,url,userinfo,expected_result,interfacenam:#定义字典数据,存储实际接口响应结果和测试结论result_data={}#发送请求并获取响应response=requests.post(url,data=userinfo).text#print(respons#将接口实际返回值存入字典result_data['接口实际返回值']=str(responsr=responsfind(expected_result)ifr>0:print(interfacename,'测试通过')#将测试结论存入字典result_data['测试结论']='测试通过'else:print(interfacename,'测试失败')result_data['测试结论']='测试失败'print(result_datreturnresult_data#把相关的测试结论写入测试报告defresult_report(self,interfacename,reportfilename,result_dat:#这次采用追加的方式写,用afile=open(reportfilename,'a')forkey,valueinresult_datitems():filwrite(interfacename+','+key+','+value+',')#写入一行测试结论之后换行filwrite(' ')#写完之后记得关闭文件filclose()if__name__=='__main__':workflowobj6=Workflow_Test_v6()file=open('testcsv','r')reportfilename='test_resultcsv'table=csv.reader(filforrowintable:#逐行读取相关内容,并将其设置为相应的参数url=rowexpected_result=rowinterfacename=row#print('url是:',url,'','expected_result是:',expected_result,'','interfacename是:',interfacenam#读取接口测试数据userinfo={}result_data={}j=int(row)foriinrange(7,2*j+7,:userinfo[row[i]]=row[i+1]#print(userinfo)#实例化测试类,传入测试数据result_data=workflowobjuserinterface_test(url,userinfo,expected_result,interfacenam#调用写入测试报告文件,传入测试结论及实际接口响应结果workflowobjresult_report(interfacename,reportfilename,result_dat注意点:每次打开csv文件查看完之后都要记得关闭文件,否则开着文件的话,程序无法运行。
优势:
编写测试报告
一个脚本的程序就可以对应若干条接口测试只需要维护测试数据就可以完成任意组接口的测试所有接口测试的结论都可以自动生成测试报告文件。
V0优化任务
接口联调测试脚本初练v0接口联调测试脚本优化v0接口联调测试脚本优化v0接口联调测试脚本优化v0
设计思路
需要把接口实际响应结果以及测试结论存入测试报告。测试报告要包括:接口名称,接口实际返回值,接口测试结论。可以在主方法中定义一个result_data的字典用来存放接口实际返回值以及测试结论,最后需要return获取完数据的result_data定义一个新的方法将字典数据内容写入测试报告。因为字典包含键+值,所以循环写入内容时要用:forkey,valueinresult_datitems():#把相关的测试结论写入测试报告defresult_report(self,interfacename,reportfilename,result_dat:#这次采用追加的方式写,用afile=open(reportfilename,'a')forkey,valueinresult_datitems():filwrite(interfacename+','+key+','+value+',')#写入一行测试结论之后换行filwrite(' ')#写完之后记得关闭文件filclose()
文章为作者独立观点,不代表股票交易接口观点