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'.\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()
View Code

用例參數Excel表中的第二列保存的是接口的方法名,在runTest方法中反射調用,傳參,完成數據驅動接口自動化測試

 結果報告如下:

執行結果為綠色代表測試通過,紅色則為失敗,這時候就可以去日志文件中定位具體返回結果,以解決問題

當然如果想要結果輸出更加炫酷的話,可以繼續研究,就不在這里探討了

代碼實現完畢,有什么問題,歡迎溝通


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM