发表于: 2017-10-29 23:10:49
1 720
今天完成的任务:
1.交任务五
2.拆一下禅道,看了以前师兄的日报,感觉任务6还是有难度的.
3.开始学习jmeter使用。
首先查一下jmeter是什么:jmeter是一个测试工具,主要用来做功能测试和性能测试(压力测试/负载均衡)
下载安装包然后到bin目录下点击jmeter.bat来启动jmeter
打开jmters首先创建一个新的线程,这个可以模拟用户的数目和请求。
Number of Threads(users): 一个用户占一个线程,200个线程就是模拟200个用户
Ramp-Up Period(in seconds): 设置线程需要多长时间全部启动。如果线程数为200 ,准备时长为10 ,那么需要1秒钟启动20个线程。也就是每秒钟启动20个线程。
Loop Count: 每个线程发送请求的次数。如果线程数为200 ,循环次数为10 ,那么每个线程发送10次请求。总请求数为200*10=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。
接下来就是继续添加各种组件。
添加HTTP请求:右键-----添加---------sampler---------http请求
添加监听器(查看结果):
查看结果树:右键------添加-------监听器------查看结果树
这个监听器根据位置不同会有不同的结果,放在线程组下面是查看线程组下所有请求的结果。
aggregate graph 聚合表格如下
Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
#Samples:表示你这次测试中一共发出了多少个请求,如果模拟20个用户,每个用户迭代10次,那么这里显示200
Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间
Median:中位数,也就是 50% 用户的响应时间
90% Line:90% 用户的响应时间
(关于 50% 和 90% 并发用户数的含义http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html)
Min:最小响应时间
Max:最大响应时间
Error%:本次测试中出现错误的请求的数量/请求的总数
Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
到这里应该就算是可以直接开始使用jmeter测试了。
2.完成第一步
第一步需要压测自己的项目,然后查看tps数据。tps:transaction per second事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息来估计得分。
tps需要下载一个插件,然后重启jmeter来应用插件,就可以使用了。
需要测试看到什么程度会程序挂掉。
就是当用户请求处理时间超过5s,或者错误率太高,都可以算是服务已经不能用了。
这是测试了访问远程服务器,响应时间是在是有点长。
测一下本地10000次还是比较正常的。。
2.配置nginx负载均衡
负载均衡分配了本地和服务器两个web容器来处理请求,并且weight来分配权重。数字越大分配给这个web容器的请求会越多。
这样配置完了之后竟然没有用。。看一下nginx的error日志
2017/10/29 23:35:59 [error] 16304#21852: *20 upstream timed out (10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond) while connecting to upstream, client: 127.0.0.1, server: localhost:8080, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8080/", host: "localhost"
发现是不能访问127.0.0.0 就是本地不可以访问,然后发现是因为我没有打开本地的tomcat。。打开以后就好了。
再压测一下:
这一次和上一次一样是100次并发,测试100次,就是10000次请求,但是这一次配置了nginx负载均衡。
配置了负载均衡反而效果不如不配。。。猜想可能是因为服务器的响应太慢了,所以不如直接在本地测试。
明天计划:
明天要学习一下memcached知识,然后尽量能实现。再去了解一下redis
遇到问题:
刚刚开始压测的时候速度很慢,只有一两百次就90%line就已经上千了,后来发现是代码里面有个异常,处理以后就好了。。
还有一个就是配置ngxin出了点小问题
收获:
有自己查错的意识,看日志。
任务6第一步做完了。
禅道:
http://taskNaNteng.com/zentao/task-view-10340.html
评论