python 接口自动化测试(二)转

上一篇 / 下一篇  2016-10-20 13:45:31 / 个人分类:python

python 接口自动化测试(二)

代码实现

1.XlsEngine.py

复制代码
#-*- coding:utf-8 -*-__author__='yanghaitao'importxlrdimportxlwtclassXlsEngine_rd():"""The XlsEngine is a demo class for excel openration 
    Just for some basic test or the using or the 3rd class in python"""def__init__(self,file):#define class variableself.xls_name =file
        self.xlrd_object=None
        self.xlwt_object=None
        self.isopenfailed=Truedefxlrd_open(self):try:#xlrd.Book.encoding="utf-8"self.xlrd_object =xlrd.open_workbook(self.xls_name)
            self.isopenfailed=FalsepassexceptException,e:
            self.isopenfailed=True
            self.xlrd_object=Noneprint(e)passfinally:'''do nothing'''passreturn[self.isopenfailed,self.xlrd_object]defdump_sheet(self):ifself.isopenfailed ==False:'''dump the sheet 
            
            usging for getting the sheet
            table = data.sheets()[0]
            table = data.sheet_by_index(0)
            table = data.sheet_by_name(u'Sheet1')'''fornameinself.xlrd_object.sheet_names():
                table=self.xlrd_object.sheet_by_name(name)print("sheet %s rownums=%d colnums=%d"%(name,table.nrows,table.ncols))else:print("file %s is not open \n"%self.xls_name)defdump_cell(self,sheet_index,cell_row,cell_col):'''sheet_index
        cell_row
        cell_col'''try:
            table=self.xlrd_object.sheet_by_index(0)
            value=table.cell(cell_row,cell_col).valuereturnvaluepassexcept:print('dump_cell,error')classXlsEngine_wt():def__init__(self,file):
        self.xls_name=file
        self.xlwt_object=None
        self.xlwt_sheet=None
        self.isopenfailed=Truedefopen(self):try:
            self.xlwt_object=xlwt.Workbook()
            self.isopenfailed=FalseexceptException,e:printedefadd_sheet(self,sheet_name):'''Create a sheet to the xls'''try:
            self.xlwt_object=xlwt.Workbook()
            self.xlwt_sheet= self.xlwt_object.add_sheet(sheet_name,cell_overwrite_ok=True)
            self.xlwt_sheet.write(0,0,'WSDL')
            self.xlwt_sheet.write(0,1,u'方法')
            self.xlwt_sheet.write(0,2,'DATA')
            self.xlwt_sheet.write(0,3,u'预期结果')
            self.xlwt_sheet.write(0,4,u'执行结果')exceptException,e:print(e)defget_sheet(self,sheet_index):try:
            self.xlwt_object=xlwt.Workbook()
            self.xlwt_sheet=self.xlwt_object.get_sheet(sheet_index)exceptException,e:print(e)defwrite(self,row,col,value):'''Write value to (row,col)'''try:
            self.xlwt_sheet.write(row,col,value)exceptException,e:print(e)defsave_xls(self):'''Save the change to xlsfile'''try:
            self.xlwt_object.save(self.xls_name)exceptException,e:print(e)defset_fontColour(self,colour_index):
        fnt=xlwt.Font()
        fnt.colour_index=colour_index
        fnt.bold=True
        style=xlwt.XFStyle()
        style.font=fntreturnstyle.defwrite_result(self,row,list,index_list,as_value=True):'''row 行,list 结果列表,index_list 填写数据列表中的值的索引,wsdl 结果中显示调用接口地址,as_value 预期结果'''self.write(row,0,str(list[index_list][0]))
        self.write(row,1,str(list[index_list][1]))
        self.write(row,2,str(list[index_list][2]))
        self.write(row,3,bool(list[index_list][3]))if(bool(list[index_list][3])==as_value):#预期结果是否为Trueself.xlwt_sheet.write(row,4,str(as_value)+'_Success',self.set_fontColour(3))#colour_index=3,绿色,通过else:
            self.xlwt_sheet.write(row,4,str(as_value)+'_Fail',self.set_fontColour(2))#colour_index=2,红色,失败defwrite_resultRed(self,row,list,index_list,wsdl):
        self.write(row,0,str(list[index_list][0]))#WSDL地址self.write(row,1,str(list[index_list][1]))#方法名self.write(row,2,str(list[index_list][2]))#传入参数(用例)self.write(row,3,bool(list[index_list][3]))#预期结果self.xlwt_sheet.write(row,4,'Unkonw_Fail',self.set_fontColour(2))#colour_index=2,红色,失败(执行结果)
复制代码

2.VIPSoap.py

复制代码
#! /usr/bin/python#coding:utf-8fromsuds.clientimportClientclassService:def__init__(self,wsdl):
        self.client=Client(wsdl)defMethod(self,dict):
        result=self.client.service.Method(dict)returnresult
复制代码

3.DataEngine.py

复制代码
__author__='yanghaitao'fromXlsEngineimportXlsEngine_rdimportLogging
COUNT_ROWs=1defdata2List(file,sheet_index):
    data=XlsEngine_rd(file)
    data.xlrd_open()
    sheet=data.xlrd_object.sheet_by_index(sheet_index)
    rows=sheet.nrows
    result_list=[]foriinrange(rows):if(i !=0):
            result_list.append(sheet.row_values(i))returnresult_listdefresultCheck(test_rep,xlw,list,xls_row):globalCOUNT_ROWsif(test_rep.Success ==True):
        xlw.write_result(COUNT_ROWs,list,xls_row,True)
        COUNT_ROWs=COUNT_ROWs+1elif(test_rep.Success ==False):
        Logging.writeLog(str(list[xls_row][1]),test_rep)
        xlw.write_result(COUNT_ROWs,list,xls_row,False)
        COUNT_ROWs=COUNT_ROWs+1else:
        Logging.writeLog(str(list[xls_row][1]),test_rep)
        xlw.write_resultRed(COUNT_ROWs,list,xls_row)
        COUNT_ROWs=COUNT_ROWs+1
复制代码

4.Logging.py

复制代码
#! /usr/bin/python#coding:utf-8importlogging,timeimportsys
reload(sys)
sys.setdefaultencoding("utf-8")
logging.basicConfig(level=logging.INFO,
                    format='%(asctime)s %(filename)s[line:%(lineno)d] 【%(levelname)s】 %(message)s',
                    datefmt='%a, %d %b %Y %H:%M:%S',
                    filename=r".\Log\Service"+time.strftime(r'%Y-%m-%d', time.localtime(time.time()))+".log",
                    filemode='a')
console=logging.StreamHandler()
logging.getLogger('suds.client').addHandler(console)defwriteLog(methodname,result):'''写日志'''content= methodname +"\n"foriteminresult:
                content=content+'\t|'+str(item)ifresult.Success==False:
                logging.error(content)defwriteException(msg):'''写日志'''logging.error("【Catch Exception】"+str(msg))
复制代码

TAG: Python 接口 python

引用 删除 qq2513953126   /   2016-10-20 17:30:31
5
 

评分:0

我来说两句

Open Toolbar