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)
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)
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 run(self, params, returnparam=None): Log.debug('start run: ' + self._CLASSNAME) result = {} tokenvalue = '' cookie = '' Log.debug('login params: ', params) if type(params) == str or type(params) == unicode: params = strToDict(params) if 'url' in params: if params['url'].find("http") < 0: url = 'http://' + params.pop('url') else: url = params.pop('url') resp = self.client.dorequest(url, params, \ methodname='post') if not resp: print 'login fail, test over!' sys.exit() respdata = resp.read() if not respdata: print 'login fail, respdata is null!' sys.exit() cookie = self.getCookie(resp.info()) if cookie: result['cookie'] = cookie tokenvalue = self.getToken(respdata, returnparam) if tokenvalue: result['token'] = tokenvalue Log.debug('end run: ' + self._CLASSNAME) return result
def genResultLink(self, respData): try: jsonResult = strToDict(respData) if jsonResult and 'data' in jsonResult: divName = 'div' + self.testCaseId self.link = "<p align='left' ><br><a href=javascript:show('" + divName + "');>show json text</a></p>" + \ "<br><div id='" + divName + "' style='display:none;'>"+ respData + "</div>" else: self.link = "<i>the Data of Response is %s<i>" % respData except BaseException, e: print e self.link = " response data is %s " % respData
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)
strData = '{' for key in dictData.keys(): temp = '"' + str(key) + '":' + '"' + dictData[key] + '"' if strData == '{': strData += temp else: strData += ',' strData += temp return strData + '}' #test if __name__ == '__main__': client = HttpClientUtil() args = strToDict( "{'password': '******', 'name': '18015505671L', 'code': ''}" ) resp = client.dorequest("http://pre.moojnn.com/mojing-server/login ", args) client.cookie = resp.info()['Set-Cookie'] # client.cookie ='JSESSIONID=2851EAEB5A2DFBBC68E5F0E9C0B8DA42; Path=/mojing-server/; HttpOnly, SERVERID=acbb2b8523be9629ba66f0a82e331010|1478163624|1478163624;Path=/' client.referer = "http://pre.moojnn.com/datasource.html" client.uploadfile("http://pre.moojnn.com/mojing-server/ds/fileupload", "C:\\Users\\water\\Desktop\\test.txt") # args = strToDict("{'password': '******', 'name': '18015505671L', 'code': ''}") # client.dorequest("http://pre.moojnn.com/mojing-server/login ", args) # try: # req = urllib2.Request(url) # res = urllib2.urlopen(req) # print res.read() # except urllib2.HTTPError as http_error: # import zlib
def setCookie(self, cookie): self.cookie = cookie 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) return cookie #test if __name__ == '__main__': client = HttpClientUtil() args = strToDict("{'password': '******', 'name': '18015505671L', 'code': ''}") resp = client.dorequest("http://pre.moojnn.com/mojing-server/login ", args) client.cookie = resp.info()['Set-Cookie'] # client.cookie ='JSESSIONID=2851EAEB5A2DFBBC68E5F0E9C0B8DA42; Path=/mojing-server/; HttpOnly, SERVERID=acbb2b8523be9629ba66f0a82e331010|1478163624|1478163624;Path=/' client.referer = "http://pre.moojnn.com/datasource.html" client.uploadfile("http://pre.moojnn.com/mojing-server/ds/fileupload", "C:\\Users\\water\\Desktop\\test.txt") # args = strToDict("{'password': '******', 'name': '18015505671L', 'code': ''}") # client.dorequest("http://pre.moojnn.com/mojing-server/login ", args) # try: # req = urllib2.Request(url) # res = urllib2.urlopen(req) # print res.read() # except urllib2.HTTPError as http_error: # import zlib # print zlib.decompress(http_error.read(), 30) # print 'd'