def dosheets(self, excelAPP, reportFileName):
     Log.debug('start: ExcelColumnFixture.dosheets')
     self.excelAPP = excelAPP
     self.reportFileName = reportFileName
     self.summary["run date"] = time.ctime(time.time())
     self.summary["run elapsed time"] = RunTime()
     sheets = self.excelAPP.getShNameList()
     self.reportNameList = []
     try:
         if not os.path.exists(REPORTPATH):
             os.mkdir(REPORTPATH)
         if not os.path.exists(FAILREPORTPATH):
             os.mkdir(FAILREPORTPATH)
     except:
         Log.error("create report fail")
     for sheetName in sheets:
         self.counts = Counts()
         if sheetName.lower().find("test") == -1:
             continue
         self.resetReportFileName(reportFileName, sheetName)
         self.reportNameList.append(self.reportFileName)
         #self.reportNameList.append(self.failReportFileName)
         print 'start test: ', sheetName
         try:
             self.doSheet(excelAPP, sheetName)
         except KeyboardInterrupt:
             sys.exit(0)
     self.makeSummaryReport()
     Log.debug('end: ExcelColumnFixture.dosheets')
    def savePreResultInfo(self, resp):
        Log.debug('start savePreResultInfo: ' + self._CLASSNAME)
        try:
            Log.debug('start savePreResultInfo: ' + resp)
            respDict = strToDict(resp)
            Log.debug('respDict: ', respDict)
            Log.debug('needSavePreResults: ', self.needSavePreResults)
            if respDict and self.needSavePreResults.find('{') > -1:
                needSavePreResultDict = strToDict(self.needSavePreResults)
                if needSavePreResultDict:
                    Log.debug('needSavePreResultDict: ', needSavePreResultDict)
                    for key in needSavePreResultDict:
                        self.getValueFromResp(key, needSavePreResultDict[key], respDict)
                else:
                    print 'json或dictionary is error'  + self.needSavePreResults#忽略
            else:
                needSavePreResultList = self.needSavePreResults.split(';')
                for savePreResult in needSavePreResultList:
                    [key, value] = savePreResult.split('=')
#                    if respDict:
#                        self.getValueFromResp(key, value, respDict)
#                    else:
                    self.getValueFromResp(key,  value, resp)
        except BaseException, e:
            Log.error(e)
Ejemplo n.º 3
0
 def getCookie(self, respInfo):
     cookie = ''
     try:
         if respInfo and 'Set-Cookie' in respInfo:
             cookie = respInfo['Set-Cookie']
     except BaseException, e:
         Log.error("get cookie value error", e)  
Ejemplo n.º 4
0
 def savePreResultInfo(self, resp):
     Log.debug('start savePreResultInfo: ' + self._CLASSNAME)
     try:
         Log.debug('start savePreResultInfo: ' + resp)
         respDict = strToDict(resp)
         Log.debug('respDict: ', respDict)
         Log.debug('needSavePreResults: ', self.needSavePreResults)
         if respDict and self.needSavePreResults.find('{') > -1:
             needSavePreResultDict = strToDict(self.needSavePreResults)
             if needSavePreResultDict:
                 Log.debug('needSavePreResultDict: ', needSavePreResultDict)
                 for key in needSavePreResultDict:
                     self.getValueFromResp(key, needSavePreResultDict[key],
                                           respDict)
             else:
                 print 'json或dictionary is error' + self.needSavePreResults  #忽略
         else:
             needSavePreResultList = self.needSavePreResults.split(';')
             for savePreResult in needSavePreResultList:
                 [key, value] = savePreResult.split('=')
                 #                    if respDict:
                 #                        self.getValueFromResp(key, value, respDict)
                 #                    else:
                 self.getValueFromResp(key, value, resp)
     except BaseException, e:
         Log.error(e)
Ejemplo n.º 5
0
    def dorequest(self, url, args=None, \
                        content_type=None, \
                        methodname='POST'):
        response = None
        Log.debug('url:', url)
        Log.debug('args:', args)
        self.setHeader()
        if methodname.upper() == 'POST':
            response = self.httppost(url, args, content_type)
        elif methodname.upper() == 'GET':
            response = self.get(url, args, content_type)
        elif methodname.upper() == 'UPLOAD':
            if  os.path.exists(args):
                response = self.uploadfile(url, args, content_type)
            else:
                Log.error('filepath is not exists: ', args)
                response = 'filepath is not exists:'
        else:
            print 'does not implement!'
#        try:
#            cookie = self.getCookie(response.info())
#            self.setCookie(cookie)
#        except:
#            pass
        return response
Ejemplo n.º 6
0
    def dorequest(self, url, args=None, \
                        content_type=None, \
                        methodname='POST'):
        response = None
        Log.debug('url:', url)
        Log.debug('args:', args)
        self.setHeader()
        if methodname.upper() == 'POST':
            response = self.httppost(url, args, content_type)
        elif methodname.upper() == 'GET':
            response = self.get(url, args, content_type)
        elif methodname.upper() == 'UPLOAD':
            if os.path.exists(args):
                response = self.uploadfile(url, args, content_type)
            else:
                Log.error('filepath is not exists: ', args)
                response = 'filepath is not exists:'
        else:
            print 'does not implement!'
#        try:
#            cookie = self.getCookie(response.info())
#            self.setCookie(cookie)
#        except:
#            pass
        return response
Ejemplo n.º 7
0
 def dosheets(self, excelAPP, reportFileName):
     Log.debug('start: ExcelColumnFixture.dosheets')
     self.excelAPP = excelAPP
     self.reportFileName = reportFileName
     self.summary["run date"] = time.ctime(time.time())
     self.summary["run elapsed time"] = RunTime()
     sheets = self.excelAPP.getShNameList()
     self.reportNameList = []
     try:
         if not os.path.exists(REPORTPATH):
             os.mkdir(REPORTPATH)
         if not os.path.exists(FAILREPORTPATH):
             os.mkdir(FAILREPORTPATH)
     except:
         Log.error("create report fail")
     for sheetName in sheets:
         self.counts = Counts()
         if sheetName.lower().find("test") == -1:
             continue
         self.resetReportFileName(reportFileName, sheetName)
         self.reportNameList.append(self.reportFileName)
         #self.reportNameList.append(self.failReportFileName)
         print 'start test: ', sheetName
         try:
             self.doSheet(excelAPP, sheetName)
         except KeyboardInterrupt:
             sys.exit(0)
     self.makeSummaryReport()
     Log.debug('end: ExcelColumnFixture.dosheets')
Ejemplo n.º 8
0
 def con2mysql(self):
     try:
         self.conn = MySQLdb.connect(self.host, self.user, self.passwd, self.database, self.port, charset='utf8')
         self.cur = self.conn.cursor()
     except MySQLdb.Error,e:
         print "Mysql connect failed! Error %d: %s" % (e.args[0], e.args[1])
         Log.error("Mysql Error %d: %s" % (e.args[0], e.args[1]))
Ejemplo n.º 9
0
 def getCookie(self, info):
     cookie = ''
     try:
         if info and 'Set-Cookie' in info:
             cookie = info['Set-Cookie']
     except BaseException, e:
         Log.error("get cookie value error", e)
Ejemplo n.º 10
0
def strToDict(data):
    result = {}
    try:
        if data:
            result = eval(data)
    except BaseException, e:
        Log.error("strToDict exception, ", e)
        Log.error("data is, ", data)
Ejemplo n.º 11
0
 def query(self, sql):
     results = None
     try:
         if self.cur.execute(sql):
             results = self.cur.fetchall()
     except:
         Log.error("query fail!")
     return results
Ejemplo n.º 12
0
 def close(self):
     try:
         self.cur.close()
         self.conn.close()
         print "close db success!"
     except:
         Log.error("close fail!")
         print 'close db fail!'
Ejemplo n.º 13
0
 def close(self):
     try:
         self.cur.close()
         self.conn.close()
         print "close db success!"
     except:
         Log.error("close fail!")
         print 'close db fail!'
Ejemplo n.º 14
0
 def query(self, sql):
     results = None
     try:
         if self.cur.execute(sql):
             results = self.cur.fetchall()
     except:
         Log.error("query fail!")
     return results
Ejemplo n.º 15
0
def strToDict(data):
    result = {}
    try:
        if data:
            result = eval(data)
    except BaseException, e:
        Log.error("strToDict exception, ", e)
        Log.error("data is, ", data)
 def getValueFromRespByPattern(self, pattern, resp):
     result = ''
     temp = re.findall(pattern, resp, re.IGNORECASE)
     if temp:
         #获取匹配的第一个元组
         try:
             result = temp[0].split(":")[-1]#
         except BaseException, e:
             Log.error('getValueFromRespByPattern: ', e)
Ejemplo n.º 17
0
 def execute(self, sql):
     result = False
     try:
         result = self.cur.execute(sql)
         Log.debug("execute sql statement!", sql)
         print "execute sql success"
         result = True
     except Exception, e:
         print "Execute Fail!"
         Log.error("execute sql fail!", e)
Ejemplo n.º 18
0
 def execute(self, sql):
     result = False
     try:
         result = self.cur.execute(sql)
         Log.debug("execute sql statement!", sql)
         print "execute sql success"
         result = True
     except Exception, e:
         print "Execute Fail!"
         Log.error("execute sql fail!", e)
 def getDynamicParamVlaue(self, paramvalue, fromWhDict):
     pattern = '%\\w+%' #动态参数
     result  = paramvalue
     try:
         valueList = re.findall(pattern, paramvalue, re.IGNORECASE)
         if len(valueList) > 0:
             keyvalue = valueList[0][1:-1] #去掉%%
             result = self.getValueFromRespByDict(keyvalue, fromWhDict)
             print keyvalue, result
     except BaseException, e:
         Log.error('getDynamicParamVlaue error:', e)
 def getFixture(self, fixturePath):
     fixture = None
     temp = fixturePath.split('.')
     _CLASSNAME = temp[-1]
     if len(temp) == 1:
         fixturePath = 'fixture.' + _CLASSNAME
     try:
         exec 'import ' + fixturePath
         exec 'fixture = ' + fixturePath + '.' + _CLASSNAME + '()' 
     except BaseException, e:
         Log.error('getFixture error:', e)
Ejemplo n.º 21
0
 def con2mysql(self):
     try:
         self.conn = MySQLdb.connect(self.host,
                                     self.user,
                                     self.passwd,
                                     self.database,
                                     self.port,
                                     charset='utf8')
         self.cur = self.conn.cursor()
     except MySQLdb.Error, e:
         print "Mysql connect failed! Error %d: %s" % (e.args[0], e.args[1])
         Log.error("Mysql Error %d: %s" % (e.args[0], e.args[1]))
Ejemplo n.º 22
0
 def runSetupFixture(self):
     if self.setupFixture:
         fixturePath = self.setupFixture[0]
         fixtureParams = self.setupFixture[1]
         _CLASSNAME = fixturePath.split('.')[-1]
         try:
             exec 'import ' + _CLASSNAME
             exec 'fixture = ' + fixturePath + '.' + _CLASSNAME + '()'
             self.initBeforeTest = fixture.run(fixtureParams)
         except BaseException, e:
             Log.error(e)
             print e
Ejemplo n.º 23
0
 def runSetupFixture(self):
     if self.setupFixture:
         fixturePath = self.setupFixture[0]
         fixtureParams = self.setupFixture[1]
         _CLASSNAME = fixturePath.split('.')[-1]
         try:
             exec 'import ' + _CLASSNAME
             exec 'fixture = ' + fixturePath + '.' + _CLASSNAME + '()' 
             self.initBeforeTest = fixture.run(fixtureParams)
         except BaseException, e:
             Log.error(e)
             print e
 def genHtmlfile(self, repstr, filename):
     Log.debug('start genHtmlfile: ' + self._CLASSNAME)
     try:
         try:
             outputReport = open(filename, 'w')
             outputReport.write(repstr)
             outputReport.flush()
             outputReport.close()
         except IOError, e:
             Log.error(e)
     finally:
         outputReport.close()
     Log.debug('end genHtmlfile: ' + self._CLASSNAME)
 def saveRespDataToFile(self, respData):
     fileName = str(self.testCaseId + 'json.txt')
     path = LOGFIELPATH + self.curShName
     if not os.path.exists(LOGFIELPATH):
         os.mkdir(LOGFIELPATH)
     try:
         if not os.path.exists(path):
             os.mkdir(path)
         fileObject = open(path + os.sep + fileName, 'w')
         fileObject.write(respData)
         fileObject.close()
     except BaseException, e:
         Log.error("create jsontxt fail!", e)
Ejemplo n.º 26
0
 def genHtmlfile(self, repstr, filename):
     Log.debug('start genHtmlfile: ' + self._CLASSNAME)
     try:
         try:
             outputReport = open(filename, 'w')
             outputReport.write(repstr)
             outputReport.flush()
             outputReport.close()
         except IOError, e:
             Log.error(e)
     finally:
         outputReport.close()
     Log.debug('end genHtmlfile: ' + self._CLASSNAME)
Ejemplo n.º 27
0
 def getFixture(self):
     result = {}
     if hasattr(self, 'fixturename'):
         fixturepath = self.fixturename
         fixturepath = fixturepath.strip()
         fixturename = fixturepath.split('.')[-1]
         try:
             exec 'import ' + fixturepath
             # test class method
             exec 'execfixture = ' + fixturepath + '.' + fixturename + '()' 
             result = execfixture.run()
         except BaseException, e:
             Log.error(e)
Ejemplo n.º 28
0
 def getFixture(self):
     result = {}
     if hasattr(self, 'fixturename'):
         fixturepath = self.fixturename
         fixturepath = fixturepath.strip()
         fixturename = fixturepath.split('.')[-1]
         try:
             exec 'import ' + fixturepath
             # test class method
             exec 'execfixture = ' + fixturepath + '.' + fixturename + '()'
             result = execfixture.run()
         except BaseException, e:
             Log.error(e)
Ejemplo n.º 29
0
 def runSetupFixture(self):
     if self.setupFixture:
         fixturePath = self.setupFixture[0]
         fixtureParams = self.setupFixture[1]
         returnparam = self.setupFixture[2]
         temp = fixturePath.split('.')
         clas = temp[-1]
         if len(temp) == 1:
             fixturePath = 'fixture.' + clas
         try:
             exec 'import ' + fixturePath
             exec 'fixture = ' + fixturePath + '.' + clas + '()'
             self.initBeforeTest = fixture.run(fixtureParams, returnparam)
         except BaseException, e:
             Log.error('runSetupFixture ERROR:', e)
 def setReqParamsByArgjson(self):
     self.reqargs = strToDict(self._args)
     if self.reqargs:
         #如果json中包含%varname%的变量
         fromWhDict = strToDict(self.previousResp)
         if fromWhDict:
             for reqarg in self.reqargs:
                 value = self.reqargs[reqarg]
                 if value.find('%') > -1:
                     self.reqargs[reqarg] = \
                         self.getDynamicParamVlaue(value, fromWhDict)
     else:
         print 'setReqParamsByArgjson error', self._args
         print 'maybe the json format is wrong!'
         Log.error('setReqParamsByArgjson error', self._args)
    def makeRepoter(self):
        Log.debug('start makeRepoter: ' + self._CLASSNAME)
        try:
            try:
                self.outputReport = open(self.reportFileName, 'w')
                self.outputReport.write(self.repstr)
                self.outputReport.flush()
                self.outputReport.close()
                #self.reportNameList.append(self.reportFileName)
            except IOError, e:
                Log.error(e)
#             Log.error('reportFileName does not exists ' + self.reportFileName)
        finally:
            self.outputReport.close()
        Log.debug('end makeRepoter: ' + self._CLASSNAME)
Ejemplo n.º 32
0
 def setDynamicUrlPath(self):
     Log.debug('start setDynamicUrlPath: ' + self.clas)
     pattern = '{\\w+}'
     dynamicPathList = re.findall(pattern, self.url, re.IGNORECASE)
     try:
         for dynamicpath in dynamicPathList:
             dynamicpathVar = dynamicpath[1:-1]  #去掉{}
             if dynamicpathVar in self.args:
                 self.url = self.url.replace(dynamicpath,
                                             self.args[dynamicpathVar])
                 self.args.pop(dynamicpathVar)
             else:
                 Log.error('setDynamicUrlPath fail, args has not ' +
                           dynamicpathVar)
     except Exception, e:
         Log.error(e)
class HttpApiFixture(ExcelColumnFixture):

    """
    process http api 
    1.read excel file, process header of http request.
    2.e.g. url = interface + function..
    """
    _CLASSNAME = 'apifixture.HttpApiFixture'
    note      = ''
    comments  = ['note', 'Note', 'comment', 'Comment']
    interface = ''  # http url, like http://www.xxx.com:8080/path
    function  = '' #path
    argCounts = 0 #
    initSetupFixture  = [] #在测试运行前需要执行的测试构建的【构建名,构建参数】
    preResultInfo = {} #前一次请求response的需要保存的结果信息
    client = HttpClientUtil() #客户端请求
    previousResp = None  #前一次请求的response
    link = ''
    userdefinefixtureresult = None #测试执行过程中测试构建执行的测试结果信息
    reqargs = {} #http请求参数
    initInfoBeforeTest = {}
    
    def runTest(self, cell, a):
        Log.debug('start runTest: ' + self._CLASSNAME)
        try:
            if not self.expected:
                self.expected = a.parse(cell.text)
        except BaseException, e:
            Log.debug("testcaseid " + str(self.testCaseId))  
            Log.debug(e)
            self.expected = ''
        try:
            actualresult = a.get() #调用测试构建定义的方法
            try:
                #self.needSavePreResults用于保存上次请求response需要保存的测试字段值,不同字段用“,”分割;可用正则或完成字段名,
                if hasattr(self, 'needSavePreResults') and self.needSavePreResults:
                    self.preResultInfo = {} #clear上次保存的信息
                    self.savePreResultInfo(actualresult)
                Log.debug('preResultInfo', self.preResultInfo)
            except BaseException, e:
                Log.error('invoke savePreResultInfo error', e)
            if self.expected and actualresult:
                bresult, message = ResultCheck.checkResult(actualresult, self.expected)
            else:
                if actualresult and actualresult.find('error') < 0:
                    bresult = 1
                    message = "expect result column is null, only output!\n"
                else:
                    bresult = 0
                    message = "expect result column is null, maybe error!\n the url:%s \n" % self.url
            if bresult > 0:
                self.right(cell, message)
            elif bresult == 0:
                self.wrong(cell, message)
            else:
                self.output(cell, message)
            try:
                cell.text = cell.text + self.link
            except:
                cell.text = self.link
 def setDynamicUrlPath(self, fromparams={}):
     Log.debug('start setDynamicUrlPath: ' + self._CLASSNAME)
     pattern = '{\\w+}'
     if not fromparams:
         fromparams = self.reqargs
     dynamicPathList = re.findall(pattern, self.url, re.IGNORECASE)
     try:
         for dynamicpath in dynamicPathList:
             dynamicpathVar = dynamicpath[1:-1] #去掉{}
             print fromparams
             if dynamicpathVar in fromparams:
                 self.url = self.url.replace(dynamicpath, fromparams[dynamicpathVar])
             else:
                 Log.error('setDynamicUrlPath fail, reqargs has not ' + dynamicpathVar)
     except Exception, e:
         Log.error(e)
Ejemplo n.º 35
0
    def makeRepoter(self):
        Log.debug('start makeRepoter: ' + self._CLASSNAME)
        try:
            try:
                self.outputReport = open(self.reportFileName, 'w')
                self.outputReport.write(self.repstr)
                self.outputReport.flush()
                self.outputReport.close()
                #self.reportNameList.append(self.reportFileName)
            except IOError, e:
                Log.error(e)


#             Log.error('reportFileName does not exists ' + self.reportFileName)
        finally:
            self.outputReport.close()
        Log.debug('end makeRepoter: ' + self._CLASSNAME)
 def test(self):
     Log.debug('start test: ' + self._CLASSNAME)
     self.clearBeforeTest()
     self.befortest()
     self.setReqParams()
     self.fixtureExecResult = self.execFixture() 
     #self.addPreResultToParams() #从上次请求产生的response中取得需要保存的参数信息,并保存到本次请求的参数列表中
     try:
         Log.debug('testCaseId:', self.testCaseId)
         self.setRequestMethod()
         #若果请求的路径信息中含有动态变量,则从参数列表中读取
         self.setDynamicUrlPath(self.reqargs)
         reqargs = self.fileUpload() #如果参数中包含filepath,则为文件上传
         respData = self.doRequest(self.url, reqargs, self.requestMethod)
         self.saveRespDataToFile(respData)
         self.genResultLink(respData)
     except BaseException, e:
         Log.error( e )
 def defineVarAndTypeDict(self, heads):
     codestr = ''
     len1 = len(heads)
     sufix = "()"
     self._typeDict.clear()
     try:
         for i in range(len1):
             varname = heads[i]
             if varname[-len(sufix):] == sufix:
                 varname = varname[:-len(sufix)]
             else:
                 # setattr(self, varname, '')
                 codestr = codestr + 'ExcelColumnFixture.' \
                                   + varname + '="" \n'
             self._typeDict[varname] = 'str'  # add varname into type diction
         exec codestr
     except BaseException, err:
         Log.error(err)
         Log.debug(ExcelColumnFixture.__dict__)
    def makeSummaryReport(self):
        Log.debug('start makeSummaryReport: ' + self._CLASSNAME)
        if hasattr(self, 'reportNameList') and len(self.reportNameList) > 1:
            if not os.path.exists(self._DEFAULTREPORTER):
                os.mkdir(self._DEFAULTREPORTER)
            self.summaryReport = open(self.summaryReportName, 'w')
            self.repstr = self.getReportHeader('summary report')
            self.repstr += self.getReportTableHeader()
            columnNames = ['filepath', 'summary result', 'detail reporter url']
            self.repstr += self.getReportTableColumnName(columnNames)
            for reportName in self.reportNameList:
                try:
                    reportfilename = reportName.split(os.sep)[-1]
                    counts = self.summaryCounts[reportfilename]
                except BaseException, e:
                    Log.error(e)
                    counts = 'ERROR:NO DATA'
                countcell = Cell(counts)
                if (hasattr(counts, 'wrong') and counts.wrong == 0):
                    #green
                    countcell.addToTag(" bgcolor=\"#cfffcf\"")
                else:
                    countcell.addToTag(" bgcolor=\"#ffcfcf\"")
                #name = reportName.split(os.sep)[-1]
                linkcell = Cell('<a href=%s>link to html</a>' % reportfilename)
#                 try:
#                     filename = reportfilename[:-12]
#                 except:
#                     filename = 'filename'
                namecell = Cell(reportName)
                namecell.addToTag("align='left'")
                rowdata = namecell.__str__() \
                            + countcell.__str__() \
                            + linkcell.__str__()
#                 if self.ismonitorcpu:
#                     self.cpuChart = Cell('<a href=..\\%s>open cpu chart</a>' \
#                                      %self.cpuRatioChartMap[reportName])
                self.repstr += self.getReportTableRow(rowdata)
            self.repstr += self.getReportTail()
            self.summaryReport.write(self.repstr)
            self.summaryReport.flush()
            self.summaryReport.close()
            print 'make summary report ok'
Ejemplo n.º 39
0
 def makeSummaryReport(self):
     Log.debug('start makeSummaryReport: ' + self._CLASSNAME)
     if hasattr(self, 'reportNameList') and len(self.reportNameList) > 1:
         if not os.path.exists(self._DEFAULTREPORTER):
             os.mkdir(self._DEFAULTREPORTER)
         self.summaryReport = open(self.summaryReportName, 'w')
         self.repstr = self.getReportHeader('summary report')
         self.repstr += self.getReportTableHeader()
         columnNames = ['filepath', 'summary result', 'detail reporter url']
         self.repstr += self.getReportTableColumnName(columnNames)
         for reportName in self.reportNameList:
             try:
                 reportfilename = reportName.split(os.sep)[-1]
                 counts = self.summaryCounts[reportfilename]
             except BaseException, e:
                 Log.error(e)
                 counts = 'ERROR:NO DATA'
             countcell = Cell(counts)
             if (hasattr(counts, 'wrong') and counts.wrong == 0):
                 #green
                 countcell.addToTag(" bgcolor=\"#cfffcf\"")
             else:
                 countcell.addToTag(" bgcolor=\"#ffcfcf\"")
             #name = reportName.split(os.sep)[-1]
             linkcell = Cell('<a href=%s>link to html</a>' % reportfilename)
             #                 try:
             #                     filename = reportfilename[:-12]
             #                 except:
             #                     filename = 'filename'
             namecell = Cell(reportName)
             namecell.addToTag("align='left'")
             rowdata = namecell.__str__() \
                         + countcell.__str__() \
                         + linkcell.__str__()
             #                 if self.ismonitorcpu:
             #                     self.cpuChart = Cell('<a href=..\\%s>open cpu chart</a>' \
             #                                      %self.cpuRatioChartMap[reportName])
             self.repstr += self.getReportTableRow(rowdata)
         self.repstr += self.getReportTail()
         self.summaryReport.write(self.repstr)
         self.summaryReport.flush()
         self.summaryReport.close()
         print 'make summary report ok'
Ejemplo n.º 40
0
 def defineVarAndTypeDict(self, heads):
     codestr = ''
     len1 = len(heads)
     sufix = "()"
     self._typeDict.clear()
     try:
         for i in range(len1):
             varname = heads[i]
             if varname[-len(sufix):] == sufix:
                 varname = varname[:-len(sufix)]
             else:
                 # setattr(self, varname, '')
                 codestr = codestr + 'ExcelColumnFixture.' \
                                   + varname + '="" \n'
             self._typeDict[
                 varname] = 'str'  # add varname into type diction
         exec codestr
     except BaseException, err:
         Log.error(err)
         Log.debug(ExcelColumnFixture.__dict__)
Ejemplo n.º 41
0
 def getToken(self, respdata, returnparam):
     tokenvalue = ''
     try:
         jsonResult = strToDict(respdata)
         if not returnparam:
             if jsonResult and 'data' in jsonResult:
                 data = jsonResult["data"]
                 tokenvalue = data["token"]
             else:
                 tokenvalue = re.findall(returnparam, respdata, re.IGNORECASE)[0]
                 tokenvalue = tokenvalue.split(":")[-1]
         else:
             if returnparam in jsonResult:
                 tokenvalue = jsonResult[returnparam]
             else:
                 #re.findall
                 tokenvalue = re.findall(returnparam, respdata, re.IGNORECASE)[0]
                 tokenvalue = tokenvalue.split(":")[-1]
     except BaseException, e:
         Log.error("get token value error", e)  
Ejemplo n.º 42
0
 def test(self):
     Log.debug('start test: ' + self._CLASSNAME)
     self.clearBeforeTest()
     self.befortest()
     self.setUrl()
     self.setReqParams()
     self.fixtureExecResult = self.execFixture()
     self.addPreResultToParams(
     )  #从上次请求产生的response中取得需要保存的参数信息,并保存到本次请求的参数列表中
     try:
         Log.debug('testCaseId:', self.testCaseId)
         self.setRequestMethod()
         #若果请求的路径信息中含有动态变量,则从参数列表中读取
         self.setDynamicUrlPath()
         #若果是上传文件,先调用fielupload,后做doRequest()
         reqargs = self.fileUpload()
         respData = self.doRequest(self.url, reqargs, self.requestMethod)
         self.saveRespDataToFile(respData)
         self.genResultLink(respData)
     except BaseException, e:
         Log.error(e)
Ejemplo n.º 43
0
                #开始HTTP请求
                resp = self.client.dorequest(self.url, self.args, \
                                             methodname=self.requestMethod)
                if isinstance(resp, str):
                    respData = resp
                else:
                    respData = resp.read()
                Log.debugvar('respData is ', respData)
            except HTTPError, e:
                respData = '{"error":"' + str(e) + '"}'
            except Exception, e:
                respData = '{"error":"' + str(e) + '"}'
            self.saveRespDataToFile(respData)
            self.genResultLink(respData)
        except BaseException, e:
            Log.error(e)
        Log.debug('end test: ' + self.clas)
        return respData

    def runTest(self, cell, a):
        Log.debug('start runTest: ' + self.clas)
        try:
            if not self.expected:
                self.expected = a.parse(cell.text)
        except BaseException, e:
            Log.debug("testcaseid " + str(self.testCaseId))
            Log.debug(e)
            self.expected = ''
        try:
            actualresult = a.get()
            try: