Jmeter压测总结
1. 解决Fiddler抓http请求的问题
第一步:对Fiddler设置为允许远程连接。找到Tools->Fiddler Options->Connections,将Allow remote computer to connect 选中,点击OK,然后重启Fiddler。
如下图:
第二步:修改手机连接网络为代理模式。
打开正在连接的wifi,修改网络设置(一般长按就会出现),管理网络设置,手动设置代理。
2. Fiddler设置抓https请求报文
第一步:对Fiddler设置https选项。找到Tools->Fiddler Options->HTTPS;设置后重启fiddler
第二步:手机端安装Fiddler证书
1)手机和电脑连接同一个局域网络后,启动浏览器访问http://IP:8888,回车进入Fiddler的证书安装页面(安卓手机通过启动手机默认浏览器访问http://IP:8888) 。其中,IP是 电脑PC连接wifi获取到的ip地址,比如这里是192.168.0.158,那么手机浏览器访问的是 http://192.168.0.158:8888
2)访问 http://192.168.0.158:8888 后,会弹出一个对话框,如图所示:点击 FiddlerRoot certificate 进行证书安装 ,按照提示安装证书即可
3. Jmeter脚本调试注意事项
1)服务器地址、路径、端口号等需要配置正确
2)发送的请求报文参数配置正确,不能漏掉某个参数
3)部分报文需要传送header,请添加对一个的header字段
4. 关于登录时获取验证码问题
1)一个用户发验证码,然后获取、登录。用BeanShell PostProcess处理参数,方便在两个线程组中调用。
${__setProperty(pkCode,${OldpkCode},true)}
${__setProperty(memberId,${OldmemberId},true)}
后续调用的时候用__P函数调用,具体调用方式${__P(memberId,)
2)多个用户发验证码,连数据库(JDBC Connection Configuration),查询发送的验证码(JDBC Request)。登录成功后,正则表达式获取pkCode,memberId,用BeanShell PostProcess处理数据,获取列表,写入data。代码如下:
FileWriter fstream = new FileWriter("D:\\data.txt",true);
BufferedWriter out= new BufferedWriter(fstream);
BufferedWriter bw = null;
out.write(vars.get("mobile")+","+vars.get("pkCode")+","+vars.get("memberId")+"\r\n");
out.close();
fstream();