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 接口自动化测试(三)的更多相关文章

  1. python接口自动化测试三十三:获取时间戳(10位和13位)

    很多时候,在调用接口时,需要对请求进行签名.需要用到unix时间戳. 在python里,在网上介绍的很多方法,得到的时间戳是10位.而java里默认是13位(milliseconds,毫秒级的). 下 ...

  2. python接口自动化测试三:代码发送HTTP请求

    get请求: 1.get请求(无参数): 2.get请求(带参数): 接口地址:http://japi.juhe.cn/qqevaluate/qq 返回格式:json 请求方式:get post 请求 ...

  3. python接口自动化测试三十六:数据驱动参数化之paramunittest

    官方文档1.官方文档地址:https://pypi.python.org/pypi/ParamUnittest/2.github源码下载地址:https://github.com/rik0/Param ...

  4. python接口自动化测试三十五:用BeautifulReport生成报告

    GitHub传送门:https://github.com/TesterlifeRaymond/BeautifulReport 配置BeautifulReport 下载.解压并修改名字为Beautifu ...

  5. python接口自动化测试三十四:github上某接口测试平台及配置

    TeserHome地址:https://testerhome.com/opensource_projects/60前端:https://github.com/pencil1/ApiTestWeb 实现 ...

  6. python接口自动化测试(三)-requests.post()

    上一节介绍了  requests.get()  方法的基本使用,本节介绍  requests.post()  方法的使用: 本文目录: 一.方法定义 二.post方法简单使用 1.带数据的post 2 ...

  7. 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码

    引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...

  8. 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 ...

  9. python接口自动化测试七:获取登录的Cookies

    python接口自动化测试七:获取登录的Cookies,并关联到下一个请求   获取登录的cookies:loginCookies = r.cookies 把获取到的cookies传入请求:cooki ...

  10. Python接口自动化测试框架实战 从设计到开发

    第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的htt ...

随机推荐

  1. PowerDesigner如何把建好的表导入到数据库中,并且把注释也导入进去

    第一次接触这个软件,经过自己的捣鼓和百度,终于可以顺利的导入数据库中了,好开森,希望可以帮助到更多人. 数据库(mysql)其实和sqlserver差不多,以16.5版本为例 1.选中一个PDM项目, ...

  2. Nancy简单实战之NancyMusicStore(一):准备工作和搭建项目

    开发环境 OS : Windows 10 10.0.14393 IDE : Visual Studio 2015 Community With Update 3 Database : PostgreS ...

  3. 分享一些免费的MD5解密网站

    最近下载了几个mdb文件,里面几万条md5和几千条sha512(居然还有站长用512直接放在库中的,尼玛多占空间啊),我用C#写了个工具暴 力了一小部分,大概不到3%吧, 花了我两天,电脑卡得要死,效 ...

  4. Android开发知识体系总结

  5. tbl.js div实现的表格控件,完全免费,不依赖jquery

    html上现在有比较好用的表格控件是datatable,但是编辑.按钮等部分是收费的,只有基础功能免费.而且尺寸发生变化时需要手工刷新等繁琐操作较多.所以我开发一个免费的供大家使用. 本项目已用于&q ...

  6. Spring集成MyBatis框架

    Java在写数据库查询时,我接触过四种方式: 1.纯Java代码,引用对应的数据库驱动包,自己写连接与释放逻辑(可以用连接池) 这种模式实际上性能是非常不错的,但是使用起来并不是非常方便:一是要手工为 ...

  7. js中的innerHTML和outerHTML区别

    一.区别:1)innerHTML: 从对象的起始位置到终止位置的全部内容,不包括Html标签.2)outerHTML: 除了包含innerHTML的全部内容外, 还包含对象标签本身. 二.例子: &l ...

  8. SQLSERVER 运维日记-数据库状态

    背景 新年伊始,小伙伴是不是还处于假期综合症的状态.我们在日常运维数据库的时候,会时常查看数据库的状态,检查数据库是否正常运行.对于这些状态的熟悉对于我们处理数据库无法访问的 问题非常重要.当数据库突 ...

  9. css3绘制腾讯logo

    CSS3绘制的腾讯LOGO,下边是对比图. 演示地址

  10. C++STL笔记

    C++STL 1.vector 向量,长度可变的数组 头文件 #include<vector> 1.1vector的定义 vector<typename> name; 例如: ...