用Ngrinder轻松进行性能测试
博客专区 > anglix 的博客 > 博客详情
用Ngrinder轻松进行性能测试
anglix 发表于2年前
用Ngrinder轻松进行性能测试
  • 发表于 2年前
  • 阅读 859
  • 收藏 10
  • 点赞 2
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

摘要: 突发兴致,要做压测。找来LoadRunner居然不支持Debian,安心玩Ngrinder吧!

Ngrinder入门

安装

基础环境

  • 以 Ngrinder-3.2.3 为例,建议用 JDK-1.6:

    mkdir -pv /data/{app,log}
    wget -P /data/log dl.higkoo.com/{jdk1.6.0_45.tgz,ngrinder-controller-3.2.3-with-tomcat.tar.gz,ngrinder-core-3.2.3-agent-package.tar.gz}
    tar -C /data/app -zxvf /data/log/jdk1.6.0_45.tgz
    tar -C /data/app -zxvf /data/log/ngrinder-controller-3.2.3-with-tomcat.tar.gz
    tar -C /data/app -zxvf /data/log/ngrinder-core-3.2.3-agent-package.tar.gz
    ln -s /data/app/jdk1.6.0_45/bin/java /usr/sbin/java

控制台管理

  • 控制端是 tomcat 启动的服务(默认端口 8080 / 默认帐号 admin/admin):

    export JAVA_HOME=/data/app/jdk1.6.0_45
    /data/app/apache-tomcat-6.0.35/bin/startup.sh

负载生成器

  • 启动的第1个参数填控制台的IP地址或域名

    export JAVA_HOME=/data/app/jdk1.6.0_45
    /data/app/ngrinder-core-3.2.3/run_agent_bg.sh 192.168.10.31

编写测试脚本

  • 如下脚本为常用 GET、POST 带参数和自定义HTTP头的方法:

示例脚本

private static final String URL = "http://api.higkoo.com:9080/status";// 请求使用的URL
private static final NVPair[] PARAMS = [
	new NVPair("color", "Magic"),
	new NVPair("expect", "Miracle"),
] as NVPair[]; // 请求的参数列表
private static final NVPair[] HEADERS = [ 
	new NVPair("Cookie", "date=20151128;path=/"),
	new NVPair("User-Agent", "nGrinder"),
] as NVPair[];// 自定义头信息
@Test
public void test(){
	HTTPResponse result = request.GET(URL, PARAMS, HEADERS) // request.POST(URL, PARAMS, HEADERS)
	if (result.statusCode == 301 || result.statusCode == 302) {
		grinder.logger.warn("Warning. The response code was {}.", result.statusCode); 
	} else {
		assertThat(result.statusCode, is(200));
	}
}

执行压测

  • 测试过程要对和个服务器的资源使用情况有所了解,下图展示过程中 控制端、被测试的服务端,以及可爱的肉鸡的 top图:

资源使用图

  • 不断增加虚拟用户数(15台24核32G的服务器),结果如下:

测试结果

  1. 本次测试以nginx状态页为例
  2. 虚拟用户乘10倍增加,响应时间几乎也同级增加
  3. 然而虚拟用户数增加,每秒响应请求数并没有质的增加
  4. 当虚拟用户数过6万时,服务器出现拒绝访问

[Sat Nov 28 19:04:46 2015] TCP: TCP: Possible SYN flooding on port 80. Sending cookies. Check SNMP counters.

附加信息

  • 然而 LoadRunner 并不支持 Debian 系统:

LoadRunner安装

共有 人打赏支持
anglix
粉丝 31
博文 35
码字总数 17615
×
anglix
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: