zoukankan      html  css  js  c++  java
  • 8.性能测试执行

    脚本调试通过之后,接下来就是正式执行过程。通常会选择window环境或者linux环境执行,两者各有优缺点:

    1) Windows环境操作界面化,直观,易上手,但Windows操作系统中软件占用机器资源较多,导致资源使用率不高。一般可用于接口的并发逻辑验证或者应对一些相关检查,特别是不需要进行过大的负载

    2) Linux环境操作使用命令,结果查看不太方便,但资源利用率相对较高。一般使用在正式性能测试项目中,可支持较高并发。

    读者可以根据项目具体情况选择执行环境

    1 Windows环境单机执行

    Windows环境下执行相对简单。4.2步骤完成之后,可以直接在Jmeter的GUI上进行操作和修改参数。下面简单说明一下几个主要过程

    1.1启动Jmeter并添加组件

    脚本编写调试好之后,拷贝相关的依赖到jmeter,然后启动。

     

    添加线程组、Sampler中的Java请求、后置处理器中的聚合报告等组件。其他如察看结果树、定时器等可根据需要自行添加修改线程组名称,建议和压测接口对应,见名知意,保存

     

    1.2生成脚本并设置参数

    设置参数线程数、Ramp-Up Period、循环次数等必要参数信息

    1) 线程数:即用户数,多少个线程就是多少个用户

    2) Ramp-Up Period:线程启动准备期,即所有线程全部启动的时间

    3) 循环次数:勾选“永远”,则一直执行,直到崩溃或手动停止。

    例如:设置100个线程,1S内全部启动所有线程,循环次数为100

    设置好参数之后,保存脚本

     

    1.3资源监控器

    打开Windows资源监控器。执行时,可实时关注资源消耗情况,如:CPU使用率、内存

     

    1.4观测服务器日志和监控

    打开应用服务器,实时观察请求日志和资源监控

     

    1.5测试场景执行

    准备工作就绪后,就可以按照测试方案中设计的测试用例来执行。

    执行前可打开Jmeter页面的日志,方便观察

     

    开始执行

    1.6测试结果收集

    执行完成后,收集执行结果和监控结果

     

    开始执行新的场景之前,先清除上次的结果数据,避免混乱

     

    2 Linux环境单机执行

    2.1安装JDK

    得到Linux机器后,首先要安装JDK,这是Jmeter能够正常运行的前提

    (1) 上传并解压jdk压缩包jdk-8u092-linux-x64.tar.gz,建议把软件都安装到/usr/local/下,如/usr/local/jdk1.8.0_92

    (2) vim编辑器打开/etc/profile文件,在文件尾部加入环境变量的定义

     

    (3) 输入命令使配置立即生效:source /ext/profile

    (4) 查看java版本,有下图所示即表示安装成功

     

    注:如果使用的是已经配置好的Linux机器,通过java -version确认JDK安装成功即可

    2.2Windows下生成并保存脚本

    Windows下生成脚本,并且调试通过,保存脚本至Jmeter工具相关目录下,可自行定义:建议放在bin目录下

     

    2.3上传JmeterLinux压测机

    Jmeter工具和脚本一起压缩,然后上传压缩包(rz命令,或FileZilla等工具)至压测Linux机器,并解压(unzip)

     

    2.4使用命令行启动执行

    Linux环境下,则需要利用jmeter.shshell脚本,使用命令行来执行

    • 前端执行命令:sh jmeter.sh -n -t cutPay.jmx -l log/cutPay.jtl

    意思是命令启动后,不能关闭和退出当前执行页面及操作,否则执行自动退出

     

    • 后端执行命令:nohup sh jmeter.sh -n -t cutPay.jmx -l log/cutPay.jtl &

    意思是命令启动后,命令会一直在执行。中止执行需要kill当前命令的进程

    执行日志可在jmeter/bin/jmeter.log下查看

     

    2.5命令参数说明

    以此命令为例:sh jmeter.sh -n -t cutPay.jmx -l log/cutPay.jtl

    -h 帮助:打印出有用的信息并退出

    -n 非GUI模式:在非 GUI 模式下运行 JMeter

    -t 测试文件:要运行的 JMeter 测试脚本文件

    -l 日志文件:记录结果的文件

    -r 远程执行:启动远程服务

    -H 代理主机:设置 JMeter 使用的代理主机

    -P 代理端口:设置 JMeter 使用的代理主机的端口号

    2.6执行结果的查看

    sh jmeter.sh -n -t cutPay.jmx -l log/cutPay.jtl,执行完成后

    1) 命令将执行结果输入cutPay.jtl中,把该文件导出至Windows环境下

    2) Windows系统下打开Jmeter,创建一个线程组,添加监听器。即可查看结果,如下图:

     

    2.7执行中的问题

    1) 执行中可能碰到如下错误,表示:jmeter.sh执行权限不够。

    解决方案,赋予执行权限即可

    命令:chmod 777 jmeter.sh

     

    执行后,权限为:-rwxrwxrwx表示,读写执行权限均有

     

    2) 使用nohup时,可能未找到这个命令,报错如下

    -bash: nohup: command not found

    解决方案:

    ① 通过which nohup,找到该命令所在目录

     

    ② 打开.bash_profile,添加到PATH

     

    ③ 执行命令:source ~/.bash_profile;使文件生效

    3 Windows环境分布式执行

    Jmeter工具本身支持分布式压测,即多台机器同时执行同一个脚本,然后统计结果。

    3.1分布式压测条件

    分布式压测,机器分为控制机(controller)和执行机(slave),有几个条件必须满足:

    • 执行机和控制机必须在同一个网段之内
    • 压测机也必须安装相同版本的JmeterJDK

    3.2修改Jmeter配置

    1) 修改控制机中apache-jmeter-3.2injmeter.properties中配置

    修改内容为:remote_hosts=xxxx代表的是压力机的ip。如果是多个压力机,之间使用【,】分隔,如下图所示

     

    12.7.0.0.1:1099表示当前主机,1099为设置的端口号,可以修改

    2) 修改执行机中apache-jmeter-3.2injmeter.properties中配置

    修改内容为:取消server_port=1099前的“#”,端口号和控制机配置文件中保持一致

    3.3启动执行机

    打开apache-jmeter-3.2injmeter-server.bat,如下图所示:

     

    3.4启动控制机

    打开apache-jmeter-3.2injmeter.bat,添加执行脚本,通过运行-->远程启动或者远程全部启动,即可启动对应执行机或者全部执行机。运行结束之后,查看聚合报告

     

    4 Linux环境分布式执行

    Linux环境分布式配置和Windows环境配置完全相同,可参考5.3.2进行修改

    4.1启动执行机

    启动执行机:&-->表示后台运行

    方法一:./jmeter-server

    方法二./jmeter-server &

    方法三./jmeter-server -Djava.rmi.server.hostname=192.168.85.217 &

    4.2启动控制机

    方法一:nohup ./jmeter -n -t cutPay.jmx -R 192.168.85.217,192.168.85.216,192.168.85.215,192.168.85.214,192.168.85.213,192.168.85.212 -l log/cutPay.jtl &

    方法二:./jmeter -n -t cutPay.jmx -R 192.168.85.217,192.168.85.216,192.168.85.215,192.168.85.214,192.168.85.213,192.168.85.212 -l log/cutPay.jtl

  • 相关阅读:
    CSS div 塌陷问题
    jquery 选择器包含特殊字符
    ASP.NET Core Action 读取流
    SQL 列拼接使用
    bootstrap div 固定
    Jquery 操作HTML5自定义属性data-*
    Vue 页面加载闪现代码问题
    iframe 加载完成事件
    closest
    【开发者的精进】 数据驱动下的程序设计
  • 原文地址:https://www.cnblogs.com/xiuxingzhe/p/11134631.html
Copyright © 2011-2022 走看看