• 软件测试第三次上机 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表内容溢出无法继续访问服务器,可以通过手动删除该表得内容来改正

  • 相关阅读:
    dfadfas
    Sqlserver修改文件目录,包括系统数据库
    VS2013 产品密钥所有版本
    win11 取消右键更多选项
    VS2013 产品密钥所有版本
    CronTrigger表达式
    C#语言Windows服务程序测试网站发送HTTP请求超时解决办法
    未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\705b2e0e\c6ba7a68\App_global.asax.v9
    SQL跨数据库复制表数据<转载>
    “服务器应用程序不可用”解决方法
  • 原文地址:https://www.cnblogs.com/clownice/p/5431320.html
Copyright © 2020-2023  润新知