软件测试第三次上机 Jmeter

整体目标:

安装虚拟机,并安装一套LAMPLinux+Apache+Mysql+PHP)待测系统,推荐ECShophttp://www.ecshop.com),基于此进行Jmeter压力测试,并在测试后得出Jmeter测试报告,并根据sysstat得出Linux服务器的CIMNCPUIOMemory以及Network)的性能。

队员分工:

  1. 角色1:安装LAMPLinux服务器(Centos)、ApachePHP

  2. 角色2:安装MySQLECShop(或类似B/S结构的系统)

  3. 角色3:安装sysstat并使用sysstat查看Linux服务器的CIMN(CPU+IO+Memory+Network)的性能

  4. 角色4:使用Jmeter进行5*1050*20的压力测试并得出Jmeter Aggregate Report,同时运用sysstat对服务器信息进行统计

实验相关内容:

本次实验得实现是通过在其中一个人的机器上装Ubuntu系统,然后在这台机器上配置Apache2, PHP5, MySQL,再安装ECShop和sysstat做为服务器,而另一台机器上安装Jmeter,通过录制脚本然后访问服务器端搭建好的ECShop网站,在服务器端通过sysstat来查看服务器得性能。最后在客户端机器和服务端机器分别得出报告。

sar命令详解:http://www.toxingwang.com/linux-unix/2027.html

linux下得top命令截图:

搭建好的ECShop界面截图:

Jmeter的testPlan展开截图:

 后置处理器:

BeanShell代码截图:

 1 java.util.regex.Pattern p = java.util.regex.Pattern.compile("id=(\d+)");
 2 java.util.regex.Matcher m = p.matcher(bsh.args[0]);
 3 boolean found = m.find();
 4 if (found) {
 5     if(m.group(1).equals(bsh.args[1])) {
 6         Failure = false;
 7     }
 8     else {
 9         Failure = true;
10         FailureMessage = m.group(1) + "<>" + bsh.args[1];
11     }
12 }
13 else failure=true;

 断言显示:

False

True

运行Jmeter测试之后的Aggregate Report Result截图:

 

运行Jmeter测试之后的服务器性能截图:

CPU

 

第一个是查看系统内进程队列的情况

  • runq-sz 准备运行的进程运行队列。

我们可以看到运行队列比平常时候要显著得长,可见是压力测试所创建的进程

CPU:表示机器内所有的CPU;
%user 表示CPU的利用率;
%nice 表示CPU在用户层优先级的百分比,0表示正常;
%system 表示当系统运行时,在用户应用层上所占用的CPU百分比;
%iowait 表示请求硬盘I/0数据流出时,所占用CPU的百分比;
%idle 表示空闲CPU百分比,值越大系统负载越低;

如截图可见idle值非常低,一般为90%以上,空闲CPU百分比明显偏低,可见压力测试已占用绝大多数得CPU资源

IO

  • bread/s: 每秒从硬盘读入系统缓冲区buffer的物理块数。
  • lread/s: 平均每秒从系统buffer读出的逻辑块数。
  • %rcache: 在buffer cache中进行逻辑读的百分比。
  • bwrit/s: 平均每秒从系统buffer向磁盘所写的物理块数。
  • lwrit/s: 平均每秒写到系统buffer逻辑块数。
  • %wcache: 在buffer cache中进行逻辑读的百分比。
  • pread/s: 平均每秒请求物理读的次数。
  • pwrit/s: 平均每秒请求物理写的次数。

可见每秒请求写得次数比一般时候要高,猜测是mysql得写入数据

Memory

kbmemfree 空闲内存大小、kbmemused  使用内存大小、kbcached  缓存内存大小、 
kbbuffers:内核中作为缓存区使用的物理内存容量 
kbcached:内核中作为缓存使用的物理内存容量 
kbswpfree:交换区的空闲容量 
kbswpused:使用中的交换区容量 
相比于平常时候的值我们可以看到,kbmemused, memused%和kbdirty的值显著偏大,显然是内存得使用率比平常要高而且存在着页面交换。

Network

IFACE:设备名;
rxpck/s:每秒收到的包;
rxbyt/s:每秒收到的所有包的体积;
txbyt/s:每秒传输的所有包的体积;
rxcmp/s:每秒收到数据切割压缩的包总数;
txcmp/s :每秒传输的数据切割压缩的包的总数;
rxmcst/s: 每秒收到的多点传送的包;
如图可见每秒收到得包数量显著增加,网络吞吐量大。

Ps.遇到得错误:

1.ECShop和PHP版本不兼容问题通过修改代码可以改正

2.压力测试之后可能会出现ECShop服务器端得数据库ecs_sessions表内容溢出无法继续访问服务器,可以通过手动删除该表得内容来改正

原文地址:https://www.cnblogs.com/clownice/p/5431320.html