简单的性能自动化测试架构设计和实现(pylot)-python

发表于:2013-5-17 14:59

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:waterxi(cnblogs)    来源:51Testing软件测试网采编

分享:

  3、Request请求部分:

  对每一个case初始化为一个request类实例,包含这case的测试数据,测试方法和测试结果,agent会实例化对立中的每个case,并在主线程中执行测试方法,获取相应的测试数据;

  重要代码,这部分代码本来是pylot中的源码,个人更倾向于将它放在request中,需要少许更改:

    def send(self, req):
         # req is our own Request object
         if HTTP_DEBUG:
             opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookie_jar), urllib2.HTTPHandler(debuglevel=1))
         elif COOKIES_ENABLED:
             opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookie_jar))
         else:
             opener = urllib2.build_opener()
         if req.method.upper() == 'POST':
             request = urllib2.Request(req.url, req.body, req.headers)
         else: 
             request = urllib2.Request(req.url, None, req.headers)  # urllib2 assumes a GET if no data is supplied.  PUT and DELETE are not supported       
 
         # timed message send+receive (TTLB)
         req_start_time = self.default_timer()
         try:
             resp = opener.open(request)  # this sends the HTTP request and returns as soon as it is done connecting and sending
             connect_end_time = self.default_timer()
             content = resp.read()
             req_end_time = self.default_timer()
         except httplib.HTTPException, e:  # this can happen on an incomplete read, just catch all HTTPException
             connect_end_time = self.default_timer()
             resp = ErrorResponse()
             resp.code = 0
             resp.msg = str(e)
             resp.headers = {}
             content = ''
         except urllib2.HTTPError, e:  # http responses with status >= 400
             connect_end_time = self.default_timer()
             resp = ErrorResponse()
             resp.code = e.code
             resp.msg = httplib.responses[e.code]  # constant dict of http error codes/reasons
             resp.headers = dict(e.info())
             content = ''
         except urllib2.URLError, e:  # this also catches socket errors
             connect_end_time = self.default_timer()
             resp = ErrorResponse()
             resp.code = 0
             resp.msg = str(e.reason)
             resp.headers = {}  # headers are not available in the exception
             content = ''
         req_end_time = self.default_timer()
 
         if self.trace_logging:
             # log request/response messages
             self.log_http_msgs(req, request, resp, content)            

         return (resp, content, req_start_time, req_end_time, connect_end_time)

53/5<12345>
100家互联网大公司java笔试题汇总,填问卷领取~

精彩评论

  • zdlhappy
    2014-5-09 09:43:23

    请教一个问题,我装好了所有需要装的,但是result.html上还是没有图片,日志里也没报错,请大神指点!!

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号