最近公司要求做APP的性能测试,尝试网上所有的方法,整崩溃了还是没有有弄好,手机连接代理,但是录制的时候有些接口就是抓不到,流程接口抓不全,导致数据插入不到数据库。后来直接撇开LoadRunner,只对Fiddler做代理抓包,将抓到的包进行分割处理,就成了我们所需要的性能测试脚本,具体操作如下(在做次操作之前,电脑和手机连接同意WiFi,台式电脑可以用无线网卡):
1.Fiddler打开代理,填写代理端口,如图所示:
Tools——Options-——Connections
2.对手机进行代理设置,在连接的WiFi下进行手动代理设置,如下图所示:
3.此时,你的fiddler应该可以抓到你手机上的包了,为了方便快速,在fiddler中只过滤你需要的请求
4.在fiddler中抓取到请求之后选中你所需要的的全部请求,进行导出
导出步骤,选中右键:save——Selected Sessions——as Text…,将文件导出之后是个txt文件;在LoadeRunner中创建一个py文件,或者pycharm中创建py文件,定义一个字符串,将txt中的文件中的内容放入到字符串中,进行分割,再进行运行,运行的结果就是你要的性能测试脚本了。具体代码如下:
import os strinfo=’’‘此处将txt文件中的全部内容粘贴进来’’’ import re strlist = strinfo.split('------------------------------------------------------------------') reqlist = [] redict = {} pamlist =[] pamddict={} pattern = [r'POST (.*) HTTP/1.1',r'GET (.*) HTTP/1.1',r'OPTIONS (.*) HTTP/1.1',r'PUT (.*) HTTP/1.1'] for i in range(len(strlist)): for pat in pattern: relist=re.findall(pat, strlist[i]) if len(relist)>0: redict['method']=pat.split(" ")[0] redict['url']=relist[0] redict['order']=i reqlist.append(redict) redict={} partern = [r'{(.*)}'] for j in range(len(strlist)): if 'POST https' in strlist[j] or 'PUT https' in strlist[j]: for pat in partern: relist = re.findall(pat,strlist[j]) if len(relist)>1: pamddict['pam']='{'+relist[0]+'}' asa=re.sub('"','\\"','{'+relist[0]+'}') pamddict['pam']=asa pamddict['order']=j pamlist.append(pamddict) pamddict={} # print(pamlist) parmlist=[] for u in pamlist: ordernum = u['order'] for k in reqlist: ordern = k['order'] if ordern == ordernum: k['pam']=u['pam'] for da in reqlist: if 'pam' in da.keys(): reqmethod=''' web_custom_request("web_custom_request", "URL=%s", "Method=%s", "TargetFrame=", "Resource=0", "Referer=", "Body=%s", LAST); '''%(da['url'],da['method'],da['pam']) else: reqmethod=''' web_custom_request("web_custom_request", "URL=%s", "Method=%s", "TargetFrame=", "Resource=0", "Referer=", "Body=", LAST); '''%(da['url'],da['method']) print(reqmethod) |
运行结果如下:
运行的结果就是性能脚本啦,将结果粘贴到LoadeRunner中,这样脚本的全流程都会抓到,而且不会漏掉,运行脚本,数据库检查数据是否插入,如果插入说明你就成功了!
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理。