测试开发工程师的工作主要是根据测试目标来完成,帮助测试人员完成测试目标,测试的业务需求是测试人员提出,但是由于环境的制约,手中没有性能测试工具的时候,性能测试的工作又必须完成,测试开发工程师会按照测试人员提出需求来开发脚本,下面是我在poptest测试开发工程师就业培训中写的一个脚本,这套脚本进行了简化,去掉教学脚本中服务器性能指标的采集脚本部分,去掉了频繁请求服务器的次数脚本部分,去掉了thinktime的时长脚本等等。
''' Ceated on 2015-10-8 @author: laoli create project: testingproject ''' import httplib import urllib import time import json class Transaction(object): def __init__(self): self.custom_timers = {} def run(self): conn = httplib.HTTPConnection("201.29.2.xxx:8080") headers = {"Content-type": "application/json"} #application/x-www-form-urlencoded,"Aceept":"text/plain" params = ({"bindHyCardInfo":{"mobileNo":"13426089279","userId":"2","hYCardno":line,"bankCardNo":"622xxxxxxxxxxxxx","ip":"201.29.2.xxx"},"header":{"version":"1.0.1","from":"1000","to":"2000","tid":line,"time":"12312","token":"SEW342WEER2342","ext":""}}) start = time.time() conn.request("POST", "/core-oper/rest/bindHyCard", json.JSONEncoder().encode(params), headers) response = conn.getresponse() response_time = time.time() data = response.read() print data conn.close() transfer_time = time.time() self.custom_timers['response received'] = response_time - start self.custom_timers['content transferred'] = transfer_time - start if __name__ == '__main__': file = open("d://card.txt") while 1: lines = file.readlines() if not lines: break for line in lines: line = line.strip('\n') trans = Transaction() trans.run() for timer in ('response received', 'content transferred'): print '%s: %.5f secs' % (timer, trans.custom_timers[timer]) file.close() |