zoukankan      html  css  js  c++  java
  • 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)
    View Code

    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'.DataSrcdataCase.xls',1)    
    Service2_dataList=DataEngine.data2List(r'.DataSrcdataCase.xls',2)    
    Service3_datalist=DataEngine.data2List(r'.DataSrcdataCase.xls',3)
    Service4_datalist=DataEngine.data2List(r'.DataSrcdataCase.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])+"	"+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()
    View Code

    用例参数Excel表中的第二列保存的是接口的方法名,在runTest方法中反射调用,传参,完成数据驱动接口自动化测试

     结果报告如下:

    执行结果为绿色代表测试通过,红色则为失败,这时候就可以去日志文件中定位具体返回结果,以解决问题

    当然如果想要结果输出更加炫酷的话,可以继续研究,就不在这里探讨了

    代码实现完毕,有什么问题,欢迎沟通

  • 相关阅读:
    快速排序
    冒泡排序
    选择排序
    合并排序
    插入排序
    跟我一起阅读Java源代码之HashMap(三)
    跟我一起阅读Java源代码之HashMap(二)
    跟我一起阅读Java源代码之HashMap(一)
    Apache2.2 + tomcat7 服务器集群配置
    Spring+Hibernate实现动态SessionFactory切换(改进版)
  • 原文地址:https://www.cnblogs.com/hito/p/5261284.html
Copyright © 2011-2022 走看看