Jmeter是 Apache 组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现。
目前版本2.3.4。
一直在用jmeter做压力测试,越来越觉得它功能强大,前段时间看有朋友说不能模拟不同ip进行并发测试,
抽空研究了一下,其实很简单。
首先,获取ip用 request.getRemoteAddr()怕有代理,所以都用 这一段:
public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
看一下原理很简单,从http头里获取值,那就模拟呀!
Jmeter有http header manager(http信息头管理器)
加个参数就ok了,但是这个是固定的,我就想能不能从文件中读取ip,然后发送呢?
当然能,添加一个csv data set config 发送的时候引用一下就ok了!
具体的就不写了,把写好的jmx下载了自己看吧!