zoukankan      html  css  js  c++  java
  • jenkins集成jmeter-进阶篇

    1、gitlab自动触发jenkins构建

    1⃣️安装插件:

     

    2⃣️新建工程,设置git url,build when a change is pushed

     

     

     auto.sh

    /bin/sh echo "123456"

    3⃣️gitlab -》 个人头像 -〉settings -》Access Tokens 创建tokens:yxzwM2AxVxZFdr9uydx4

    4⃣️配置jenkins服务器 (unuseful) 系统管理-》系统设置-> gitlab相关部分

     点击Add,添加上一步生成的token

    5⃣️配置gitlab工程
    选择已有工程或者新建一个工程,settings-》integrations,URL、Token为第二步红色框里的值

     

     创建webhook后,点击test下push event 测试一番,可手动产生事件,触发jenkins工程

     然后点击Edit,页面底部查看该webhook最近调用情况;点击view details查看详细调用情况

     在jenkins相应工程中出现构建历史

     当auto.sh有修改、提交后(只要第5⃣️步配置的工程有提交),该工程便会自动构建

    2、查看性能测试曲线图

    构建【将测试结果文件生成测试报告】:执行jmeter -g result.jtl -o reports/

     构建后操作 【publish performance test result report】-依赖插件performance plugin

     【立即构建】

    添加性能曲线图时各选项的作用;
    jmeter -n -t login.jmx -l result.jtl -e -o report  ==??==> jmeter -n -t login.jmx -l result.jtl;jmeter -g result.jtl -o report  

     3、jenkins 参数化构建

    参数化构建:依赖插件(Extended Choice Parameter)

     配置页面-参数化构建过程-增加Extended choice parameter

     

    保存后出现build with parameters

     

     启动远程服务器命令(remote_startup.sh 传git)

    jmete分布式压测指定多个远程机器cd/
    Tips:远程启动jmeter -R,需要进入jmeter bin路径  当前路径需存在rmi_keystore.jks

     

    了解参数化构建各选项的作用
    对每个扩展参数展示描述文本-done
    脚本待完善
    1⃣启动命令前检查是否已启动;若已启动需要杀掉多个进程,xargs无效 - done
    2⃣传多个参数时,需要循环远程连接 - done
    remote_startup.sh
    #!/bin/sh   IFS=',' remote_host_arr=($1)   for host in ${remote_host_arr[@]} do pid=$(sshpass -p password ssh -Tq -p 9800 ceshi@$host  "ps -ef | grep jmeter-server | grep -v grep | awk  '{print $2}'"| awk '{print $2}'|xargs) sshpass -p password ssh -Tq -p 9800 ceshi@$host << remotessh sudo -s cd /usr/local/Jmeter/apache-jmeter-5.0/bin/ echo $pid echo ${#pid} if [ -n "$pid" ]; then kill -9 $pid fi export JAVA_HOME="/usr/local/soft/jdk8" nohup sh jmeter-server > nohup.out 2>&1 & exit remotessh done

    4、Jenkins Run Performance test 

    1⃣新建任务后,在【构建步骤】部分包含【Run Performance test】 
        依赖插件Performance Plugin 并且jenkins服务器需要python2.7+,
        和bzt (pip install bzt) 或者 virtualenv(pip install virtualenv)

      

    说明:jenkins的性能插件主要使用Taurus工具执行压测 http://jenkinsci.github.io/performance-plugin/RunTests.html 
    本机可以不安装jmeter,Taurus会尝试将最新的jmeter和相关插件安装到〜/ .bzt / jmeter-taurus / bin / jmeter
    Taurus为许多开源测试工具提供不同的执行程序,如JMeter,Selenium,Gatling,Grinder等。默认执行程序是JMeter,因此如果您已经使用JMeter创建了一个JMX文件,那么使用Taurus运行它是非常容易的!只需使用bzt命令后跟JMX路径。
    2⃣ 新建任务 - Run performance test
     
    3⃣立即构建 
        第一次构建运行时间会比较长,因为要下载jmeter安装包
        (已安装bzt的情况-会自动在~/.bzt/路径下安装最新版jmeter)

      (没有安装bzt,安装有virtualenv的情况-会先在虚拟环境安装bzt)

     构建成功后,可查看测试报告<每次构建结果曲线图>,类似

    1、压测服pressure1安装bzt失败,待解决 【本机可安装成功】;或者需要安装virtualenv ,在jenkins中安装bzt。
        (如果pip install bzt失败,则即使安装了virtualenv,安装bzt仍然会失败)
    2、jmeter非自带的插件是否会自动安装 --- 会;是否可以进行分布式压测
    3、bzt语法、参数、yaml脚本等等

    5、jenkins集成多个git仓库

    安装插件-Multiple SCMs

     配置多个git地址

    当配置多个仓库时,直接构建任务会出现第一个配置获取的代码被第二个配置的覆盖,最后只能保留下来最后一次拉取的代码
    这样不是我们想要的效果,由于拉取代码会直接将代码放入任务工程目录,也就是以你创建任务的名字目录,
    所以下一个任务会对上一个覆盖,这个时候我们可以将每个仓库-或其中一个仓库拉取的代码放入独立的目录中

     执行shell的时候指定正确的路径

     参考资料

    其它

    1,ssh-copy-id "-p 9800 ceshi@host"   可将本机公钥放入远程机器,使用ssh无密远程登录
    2,gitlab自动触发jenkins创建,若脚本是带参数的,自动构建时使用默认参数
    3,ssh远程登录时增加-o StrictHostKeyChecking=no用来解决连接新主机时,不进行公钥确认
     
  • 相关阅读:
    Postgresql HStore 插件试用小结
    postgres-xl 安装与部署 【异常处理】ERROR: could not open file (null)/STDIN_***_0 for write, No such file or directory
    GPDB 5.x PSQL Quick Reference
    postgresql 数据库schema 复制
    hive 打印日志
    gp与 pg 查询进程
    jquery table 发送两次请求 解惑
    python 字符串拼接效率打脸帖
    postgresql 日期类型处理实践
    IBM Rational Rose软件下载以及全破解方法
  • 原文地址:https://www.cnblogs.com/xiehong/p/12214014.html
Copyright © 2011-2022 走看看