性能测试的轻松搞定及常见问题和测试工具

上一篇 / 下一篇  2014-01-15 11:02:50 / 天气: 晴朗 / 心情: 平静 / 精华(1) / 置顶(1) / 个人分类:python

1.      如果是pythonurllib2Requests

>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))

>>> r.status_code200

>>> r.headers['content-type']'application/json; charset=utf8

'>>> r.encoding'utf-8'

>>> r.textu'{"type":"User"...'

>>> r.json(){u'private_gists': 419, u'total_private_repos': 77, ...}

 

Requests提供了最简便的JSON解析方法,类似于这样:

>>> import requests

>>> r = requests.get('https://github.com/timeline.json')

>>> r.json()[{u'repository': {u'open_issues': 0, u'url': 'https://github.com/...

 

一个自定义header的例子,POST

>>> import json

>>> url = 'https://api.github.com/some/endpoint'

>>> payload = {'some': 'data'}

>>> headers = {'content-type': 'application/json'}

>>> r = requests.post(url, data=json.dumps(payload), headers=headers)

 

2.      或者另一种编码方式   

json_data = ""   

data = {}   

#请求的url   

url = 'http://mapi.test.com/star/user/show.json'    

#添加请求参数   

data['key'] = value   

params = urllib.urlencode(data)   

req = url + '?' + params   

#变成request对象   

pi = urllib2.Request(req)   

#添加header,编码   

header = base64.b64encode('10201:86f2629ae23038de27da5629181f1793')   

api.add_header('Authorization','Basic '+ header)   

api.add_header('App-Id','10221003')')       

try:        #打开request连接       

f = urllib2.urlopen(api)        

urllib2.socket.setdefaulttimeout(20)       

#读取数据       

json_data = f.read()         

f.close()             

except

urllib2.URLError, e:       

print 'request url exception:'       

if(hasattr(e,'reason')):           

print "reason: ", e.reason       

if(hasattr(e,'code')):           

print "code: ", e.code       

if(hasattr(e,'read')):           

print "read: ", e.reason           

if json_data.strip()=='':       

print 'json data is null'   

decodejson = json.loads(json_data)

 

3.      上传的接口demo   

from poster.encode import multipart_encode   

from poster.streaminghttp import register_openers   

req = url #请求的url    #test.jpg是当下文件夹的上传到图片数据   

params={'file':open("./test.jpg","rb"),'access_token':'0cd504b7d775cefa4b80e9b12ae15594' }  datagen,headers = multipart_encode(params)   

api = urllib2.Request(req,datagen,headers)   

#添加header   

header = base64.b64encode('10121:0cd504b7d775cefa4b80e9b12ae15594')       

#header = '0cd504b7d775cefa4b80e9b12ae15594'   

print header   

api.add_header('Authorization','Bearer '+ header)   

api.add_header('App-Id','10221007') #exo   

api.add_header('Device-Id','11072e82daed5bad7d94bf4a15e0772b')   

api.add_header('Device-V','JTIyQW5kcm9pZCUyMl8lMjI0LjIuMSUyMl80ODAqODU0XzExMDA2MDAwMA==')   

#print urllib2.urlopen(request).read()   

#读取数据   

 f = urllib2.urlopen(api)   

json_data = f.read()

 

 

4.当返回错误的时候,如何显示原网页的内容   声明错误代码   

class NoExceptionCookieProcesser(urllib2.HTTPCookieProcessor):     

def http_error_403(self, req, fp, code, msg, hdrs):        

return fp     

def http_error_400(self, req, fp, code, msg, hdrs):        

return fp     

def http_error_500(self, req, fp, code, msg, hdrs):        

return fp    

请求方式           

cj = cookielib.CookieJar()           

opener = urllib2.build_opener(NoExceptionCookieProcesser(cj))           

f = opener.open(url)           

 json_data = f.read()

 

4.      手机端性能记录工具,

Emmagee是监控指定被测应用在使用过程中占用机器的CPU、内存、流量资源的性能测试小工具。
  支持SDKAndroid2.2以及以上版本
  Emmagee功能介绍
  1、检测当前时间被测应用占用的CPU使用率以及总体CPU使用量
  2、检测当前时间被测应用占用的内存量,以及占用的总体内存百分比,剩余内存量
  3、检测应用从启动开始到当前时间消耗的流量数
  4、测试数据写入到CSV文件中,同时存储在
手机
  5、可以选择开启浮窗功能,浮窗中实时显示被测应用占用性能数据信息
  6、在浮窗中可以快速启动或者关闭手机的wifi网络
  Emmagee如何使用?
  1、安装Emmagee应用
  apk下载地址:http://code.google.com/p/emmagee/downloads/list
  2、启动Emmagee,列表中会默认加载手机安装的所有应用
  3、选择你需要测试的应用,点击开始测试,被测应用会被启动


压力测试工具jemeter,详情百度


TAG: 性能测试 emmage Jmeter jmeter 压力 Python python urllib2 后台 接口测试

 

评分:0

我来说两句

我的栏目

日历

« 2024-03-19  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 5692
  • 日志数: 4
  • 建立时间: 2013-10-24
  • 更新时间: 2014-01-21

RSS订阅

Open Toolbar