python 接口自动化测试(三)
1.WriteIni.py
- import ConfigParser
- cf = ConfigParser.ConfigParser()
- cf.add_section("PC_WSDL")
- cf.set("PC_WSDL", "IP", 'localhost')
- cf.add_section("VIP_WSDL")
- cf.set("VIP_WSDL", "release_IP", 'localhost')
- # write to file
- with open("./soapTest.ini","w+") as f:
- cf.write(f)
ini配置文件用于保存测试接口的ip地址
2.RunMain.py
- #! /usr/bin/python
- # coding:utf-8
- __author__ = 'yanghaitao'
- from XlsEngine import XlsEngine_wt
- import DataEngine
- import ConfigParser,time,Logging
- import VIPSoap
- import sys
- reload(sys)
- sys.setdefaultencoding( "utf-8" )
- DATE=time.strftime(r'%Y-%m-%d-%H%M%S', time.localtime(time.time()))
- cf = ConfigParser.ConfigParser()
- cf.read('./soapTest.ini')
- VIP_release_IP=cf.get("VIP_WSDL","release_IP") #读取VIP测试接口IP
- #Excel的sheet中只保存同一接口的用例参数,不同接口保存在不同sheet中,通过修改sheet索引,获取不同接口的参数列表
- Service1_dataList=DataEngine.data2List(r'.\DataSrc\dataCase.xls',1)
- Service2_dataList=DataEngine.data2List(r'.\DataSrc\dataCase.xls',2)
- Service3_datalist=DataEngine.data2List(r'.\DataSrc\dataCase.xls',3)
- Service4_datalist=DataEngine.data2List(r'.\DataSrc\dataCase.xls',4)
- def runTest(ip,list,serviceClass):
- for i in range(len(list)):
- try:
- runtest=serviceClass(ip+str(list[i][0]))
- dict=eval(str(list[i][2]))
- test_rep=getattr(runtest,str(list[i][1]))(dict) #eval函数将str类型转换为dict类型,以传参给接口方法调用
- DataEngine.resultCheck(test_rep,xlw,list,i)
- except Exception,e:
- print(str(list[i][1])+"\t"+str(e))
- Logging.writeException(e)
- if __name__ == '__main__':
- xlw = XlsEngine_wt(r'.\DataSrc\\'+DATE+'.xls')
- xlw.add_sheet('result')
- runTest(VIP_release_IP,Service1_dataList,VIPSoap.Service1)
- runTest(VIP_release_IP,Service2_dataList,VIPSoap.Service2)
- runTest(VIP_release_IP,Service3_datalist,VIPSoap.Service3)
- runTest(VIP_release_IP,Service4_datalist,VIPSoap.Service4)
- xlw.save_xls()
用例参数Excel表中的第二列保存的是接口的方法名,在runTest方法中反射调用,传参,完成数据驱动接口自动化测试
结果报告如下:
执行结果为绿色代表测试通过,红色则为失败,这时候就可以去日志文件中定位具体返回结果,以解决问题
当然如果想要结果输出更加炫酷的话,可以继续研究,就不在这里探讨了
代码实现完毕,有什么问题,欢迎沟通
python 接口自动化测试(三)的更多相关文章
- python接口自动化测试三十三:获取时间戳(10位和13位)
很多时候,在调用接口时,需要对请求进行签名.需要用到unix时间戳. 在python里,在网上介绍的很多方法,得到的时间戳是10位.而java里默认是13位(milliseconds,毫秒级的). 下 ...
- python接口自动化测试三:代码发送HTTP请求
get请求: 1.get请求(无参数): 2.get请求(带参数): 接口地址:http://japi.juhe.cn/qqevaluate/qq 返回格式:json 请求方式:get post 请求 ...
- python接口自动化测试三十六:数据驱动参数化之paramunittest
官方文档1.官方文档地址:https://pypi.python.org/pypi/ParamUnittest/2.github源码下载地址:https://github.com/rik0/Param ...
- python接口自动化测试三十五:用BeautifulReport生成报告
GitHub传送门:https://github.com/TesterlifeRaymond/BeautifulReport 配置BeautifulReport 下载.解压并修改名字为Beautifu ...
- python接口自动化测试三十四:github上某接口测试平台及配置
TeserHome地址:https://testerhome.com/opensource_projects/60前端:https://github.com/pencil1/ApiTestWeb 实现 ...
- python接口自动化测试(三)-requests.post()
上一节介绍了 requests.get() 方法的基本使用,本节介绍 requests.post() 方法的使用: 本文目录: 一.方法定义 二.post方法简单使用 1.带数据的post 2 ...
- 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码
引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...
- python接口自动化测试二十七:密码MD5加密 ''' MD5加密 ''' # 由于MD5模块在python3中被移除 # 在python3中使用hashlib模块进行md5操作 import hashlib # 待加密信息 str = 'asdas89799,.//plrmf' # 创建md5对象 hl = hashlib.md5() # Tips # 此处必须声明encode # 若写法为
python接口自动化测试二十七:密码MD5加密 ''' MD5加密 '''# 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作import has ...
- python接口自动化测试七:获取登录的Cookies
python接口自动化测试七:获取登录的Cookies,并关联到下一个请求 获取登录的cookies:loginCookies = r.cookies 把获取到的cookies传入请求:cooki ...
- Python接口自动化测试框架实战 从设计到开发
第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的htt ...
随机推荐
- 本地ssh连接到vbox中的linux
本机是window xp系统, 安装vbox,在vbox下安装linux,想在xp中用ssh连接linux,此时需要配置网络. 1.设置vbox的网络,选择host-only 2.设置window虚拟 ...
- HTML5本地存储 localStorage 和 sessionStorage 的基本用法及属性
localStorage 和 sessionStorage 的用法都是本地的存储和获取 但他们又有所区别, 1, sessionStorage 是一个短暂的本地存数,它会随着浏览器的刷新和关闭而消失, ...
- 用Mockito测试SpringMVC+Hibernate
用Mockito测试SpringMVC+Hibernate 译自:Spring 4 MVC+Hibernate 4+MySQL+Maven integration + Testing example ...
- office如何去除多页签
写文档会遇到同时打开多个文档,偶尔可能需要对比,而有时office会出现跟浏览器类似的多页签界面.如何去除多页签,office本身没有此加载项,一般都是作为插件或组件形式另外安装,导致我们不知道从哪里 ...
- [html] 学习笔记--Web存储
HTML5 提供了两种在客户端存储数据的新方法之前,这些都是由 cookie 完成的.但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效 ...
- jstl__报错
1.缺少JAR:解决的办法就是手动将jstl.jar和 standard.jar这两个jar包加入到web项目的WEB-INF/lib目录中或者是把jstl.jar.standard.jar复制到to ...
- JAVA_file(1)
1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz est.txt 代表了test.txt文件的绝对路径.http://www.s ...
- javascript判断浏览器类型与版本
转自 司徒正美博客: http://www.cnblogs.com/rubylouvre/archive/2009/10/14/1583362.html
- thinkjs——一个字段一种数字代表两种状态
问题来源: 现有一张company数据表,其中有一个字段state(-2:待审核:-1:禁用:0:正常:1:会员过期:),一般而言,在前期设计数据表的时候,会将每种状态下都用一种特定的数字代表,但是这 ...
- linux目录结构解析
"/" :Linux文件系统的入口.也是最高一级的目录. "/bin":基本系统所需要的命令,功能和"/usr/bin"类似,这个目录下的文 ...