美文网首页
基于 Jmeter+Shell+Jenkins 集成实现性能自动

基于 Jmeter+Shell+Jenkins 集成实现性能自动

作者: you的日常 | 来源:发表于2022-08-04 16:55 被阅读0次

    JMeter 是一款开源桌面应用软件,可用来模拟用户负载来完成性能测试工作,因其开源性和扩展性,JMeter 已经是使用率最高的性能测试工具之一。

    因压测过程中 Windows 服务器的局限性,一般企业都会选择 Linux 系统去进行压测,然后在 Linux 系统中 JMeter 没有友好的 GUI 界面进行编辑脚本,只能通过命令操作 JMeter,这样有效地节省了 JMeter 对服务器资源的占用,但是使用命令的频繁性和重复性,大量地增加了性能测试工程师的压力,在一些周期比较长的性能测试工作中,单独地使用命令进行压测是对测试工程师的一个很大的挑战,开发一个性能平台需要浪费大量的人力去维护此平台且需要代码能力很强的测试工程师去进行开展!然而不需要使用重复的脚本命令也不需要开发一个性能测试平台,也能实现一个简单的性能平台,该如何做呢?

    JMeter 在 Linux 系统上进行压测

    首先关于 JMeter 如何在 Linux 环境下如何安装我就不一一介绍了,相信这种类型文章在网上还是有很多的。下面介绍一下如何在 Linux 环境下进行压测。

    1. 在本机上利用 GUI 模式将脚本编辑完成

    图 1-1

    2. 利用 FTP 等工具将脚本上传到服务器上

    图 1-2

    3. 使用命令在 Linux 服务下压测并生成 HTML 报告

    安装好 JMeter 后进入 JMeter 的 bin 目录下,执行以下命令:

     sh jmeter.sh -nt /root/.jenkins/workspace/coupontest/coupon.jmx  -l /root/.jenkins/workspace/coupontest/result1.jtl -e -o /root/.jenkins/workspace/coupontest/test
    
    
    图 1-3

    命令解析:

    • -h:帮助
    • -n:非 GUI 模式
    • -t:指定运行的 JMeter 测试脚本文件
    • -l:记录结果的文件,每次运行之前,要确保之前没有运行过,即 xxx.jtl 不存在,不然报错
    • -e:在脚本运行结束后生成的 HTML 报告
    • -o:用于存放 HTML 报告的目录(目录要为空,不然报错)
    • sh jmeter.sh:Linux 环境下启动 JMeter
    • /root/.jenkins/workspace/coupontest/coupon.jmx:脚本存放的路径及名称
    • /root/.jenkins/workspace/coupontest/result1.jtl:生成 JTL 文件的路径及名称
    • /root/.jenkins/workspace/coupontest/test:生成 HTML 报告的路径及名称

    通过 Shell 脚本运行 JMeter

    通过执行脚本我们可以看出非 GUI 模式下运行 JMeter 操作比在 GUI 中复杂的多,因 JTL 文件不能覆盖且 HTML 报告的目录只能为空的特性,所以每次执行测试的时候都需要修改一下目录且名称,为避免这样重复性的操作,可以通过 Shell 脚本的方式来启动 JMeter。

    利用 vim 命令新建脚本:vim startjmeter.sh

    编写以下脚本:

    # 生成当前日期,jtl 和 html 报告以时间戳的形式,避免重复修改
    date=$(date +%Y%m%d%H%M)
    echo 当前时间: $date
    
    #配置脚本名称和 html 报告路径
    jmxPath=/root/.jenkins/workspace/coupontest/coupon.jmx  
    ReportPath=/data2/report/"$date"
    jtlpath=/data2/jtl/"$date"
    
    #创建日期文件夹
    mkdir "$jtlpath"
    mkdir "$ReportPath"
    echo 执行 Jmeter
    
    #并入 jmeter 的 bin 目录
    cd /data/jmeter/apache-jmeter-5.1.1/bin
    #执行脚本
    sh jmeter.sh -nt "$jmxPath" -l "$jtlpath"/result.jtl  -e -o "$ReportPath"
    #打印脚本的内容 
    echo sh jmeter.sh -nt "$jmxPath" -l "$jtlpath"/result.jtl  -e -o "$ReportPath"
    
    

    编写脚本以后将 startjmeter.sh 脚本设计可编辑权限,通过执行命令:

    相关文章

      网友评论

          本文标题:基于 Jmeter+Shell+Jenkins 集成实现性能自动

          本文链接:https://www.haomeiwen.com/subject/osuubktx.html