利用Jmeter对禅道进行性能测试

2023-11-01

前言

jmeter工具的学习和使用

一、背景

前段时间没事,自己在虚拟机上搭建了一个禅道环境,并在外机上安装jmeter,编写脚本对禅道进行简单的性能测试。

二、操作步骤

1.环境搭建

  • 1.1、禅道环境搭建:本地电脑安装VMware Workstation Pro虚拟机管理软件,然后在软件上安装一台window虚拟机。在禅道管网下载禅道安装包(注意:需要下载windows的开源版本),下载后解压到本地,并启动应用:
    禅道项目启动

  • 1.2、jmeter下载:在外机上下载jmeter,下载地址:https://jmeter.apache.org,下载后,可直接解压则可以正常使用。

  • 1.3、jmeter环境变量配置:第一步:在系统变量-新建JMETER_HOME(全部大写)环境变量,变量值为JMeter解压后的路径,值(例如):C:\jmeter\apache-jmeter-5.5。第二步:在系统变量中,双击classpath变量在值后面加上%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar; 点击确定。第三步:在系统变量中,双击“Path”变量,新建添加内容“%JMETER_HOME%\bin”,点击确定。
    jmeter环境变量配置

  • 1.4、jmeter环境配置是否成功检测:打开cmd,输入jmeter,如果可成功打开jmeter,则环境配置成功。

  • 1.5、Java环境下载:打开java官网地址可下载(前提需要注册一下):https://www.oracle.com/java/technologies/downloads/#java8-windows,选择windows64版本下载即可,下载成功后,一直点击下一步即可成功安装(注意:安装时,要把java的安装路径记下来,后面环境配置需要用到)

  • 1.6、Java环境配置:第一步:系统变量下,新建JAVA_HOME,值是java安装的根路径,例如:D:\java\jdk1.8.0_361,第二步:新建CLASSPATH,(如果有的话,就不要新建了),在其值下面加上次值:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;第三步:在系统变量path后面加上值:%JAVA_HOME%\bin、%JAVA_HOME%\jre\bin。
    环境配置

  • 1.7、Java环境配置是否成功检测:打开cmd,输入Java - version,可正常输入java版本信息,则表示java配置成功。

2.jmeter测试禅道接口脚本编写

2.1、fiddle抓取接口信息,并于jmeter进行单接口联调:在虚拟机环境下,打开禅道环境,访问禅道官网,第一步:利用fiddle抓包工具,抓取禅道登录接口信息,将接口地址,请求头信息,请求的用户参数,和content-type类型等信息记录下来。第二步:在外机上打开jmeter,新建测试计划,计划下新增线程组,线程组下新建请求,新增查看结果树,新增消息头管理器。第三步:将fiddle抓去到的信息,填写到jmeter新增的配置原件下,点击启动,进行单接口联调。
2.2、正则表达式提取Cookid,进行参数传递:登录接口发送成功后,响应头中返回了Cookid,可利用新增正则表达式提取器来提取。
2.3、正则表达式参数讲解(延申内容):
正则表达式一般是把你需要提取的信息全部填上,然后在把你想要提取的信息,一般换成(.*?). 表示匹配任何字符,✳表示任意个字符,?表示不要太贪婪,在找到第一个匹配项后停止。
模板:表示取第几个值,$-1$表示取所有值,$0$表示随机取值,$1$表示取第一个值,$2$表示取第二个值
匹配数字: 0表示随机取值, 1代表全部取值。
缺省值:如果正则表达式取不到值,则使用此缺省值。
正则表达式

2.4、怎样检测正则表达式提取的信息是否拿到:可以新增原件Debug Sample(调试取样器),里面参数一般不用做改变。
2.5、JSON提取器使用(延申内容):除了利用正则表达式,一般也可以用,JSON提取器。JSON提取器一般用在返回信息是json格式,用的时候一般用 . .来根据树形结构来提取字段信息,如果多个字段在一个节点,则需要用[]切片加序号来提取信息。
2.6、不同线程之间传递Cookid:登录线程提取Cookid值后,可通过添加BeanShell后置处理器,通过函数来把局部变量设置为全部变量,如:${__setProperty(全局变量名,${局部变量名},)}; ,在其他线程中使用时候,用法为:${__P(全局变量名)}; ,这样则可成功在不同线程组之间传递变量信息。
BeanShell后置处理器设置全局变量

2.7、登录线程只登录一次控制:第一种方法:添加setup线程组,将登记接口放到次线程下,线程循环次数改为一次,则可控制登录接口只执行一次,且每次都是先执行。第二种方法:在同一个线程组中时,可以先添加循环控制器,把所有的请求放到循环控制器下面,然后再添加仅一下控制器,把登录请求放到此控制下,则可做到登录请求只执行一次。
2.8、多线程、多请求执行顺序:第一:除了setup每次都是最先执行的线程,teardown每次都是最后执行的线程外,其他线程都是排在前面的先执行,排在后面后执行。第二:在一个线程组下有多个请求,则需要在线程组下面添加逻辑控制器Critical Section Controller,再把多个请求按执行顺序放到逻辑控制器下面,那么多个请求并发操作时候,则会按顺序执行请求。
**

3.jmeter脚本执行

**
3.1、图形化模式下执行:这种模式下执行,没什么说的,就是打开jmeter,打开编写的脚本文件,选择你需要执行测试计划,或者某个线程组,点击执行按钮,等待程序执行完成,查看添加的监听器,如查看结构树,聚合报告来看一下接口执行的基本信息,一般在脚本调试阶段会在此模式下运行脚本。

3.2、非图形化模式下执行:保证jmeter已配置了系统变量,如在windows下,可输入cmd,打开doc窗口,输入jmeter的运行命令,如:jmeter –n –t D:\test01.jmx –l D:\html\csvlog.log –e –o D:\html\Report,-n -t D:\test01.jmx ,表示执行jmeter的脚本文件,–l D:\html\csvlog.log,表示将执行jmeter的脚本文件记录并输出log文件, –e –o D:\html\Report,表示将执行jmeter的脚本生成html文件,html文件里面记录了像,接口运行中的参数信息,如接口运行错误率,吞吐量,响应时间,等等。正常做性能测试,都会在非图形化模式下运行的,因为图形化运行脚本,也为打开jmeter软件也有资源消耗,这样对接口性能测试有一定影响。
生成的html页面信息


总结

以上就是今天要讲的内容,本文仅仅简单介绍了jmeter的使用,而jmeter提供了大量函数及其他模块的集成使用,也是值得我们探险和学习。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用Jmeter对禅道进行性能测试 的相关文章

随机推荐

  • 简单了解单点登录及实现方案

    代码演示基于springboot 一 单应用单节点登录认证 任何一个应用系统都离不开登录认证过程 实现登录认证主要目的是对系统的权限管理 在单应用单节点下常用做法通常采用session认证机制 其主要流程如下 客户端访问登录接口 传递用户名
  • i219-v不支持服务器,网络适配器中找不到Intel(R) Ethernet Connection I219-V该怎么解决?在虚拟机配...

    是因为网络适配器权限问题 1 打开网络连接 如下图 2 打开本地连接的属性 选择高级菜单 并将Internet连接共享的勾都打上 3 然后选择无线网卡进行专用网络连接 4 设置之后 您可以看到本地连接有一个手形图标 表明它是一个共版享状态
  • 三极管饱和及深度饱和状态的理解和判断!

    三极管饱和问题总结 1 在实际工作中 常用Ib V R作为判断临界饱和的条件 根据Ib V R算出的Ib值 只是使晶体管进入了初始饱和状态 实际上应该取该值的数倍以上 才能达到真正的饱和 倍数越大 饱和程度就越深 2 集电极电阻 越大越容易
  • 单选按钮input[type=radio],加上disabled后按钮颜色失效,始终默认为灰色

    在前端使用单选按钮input type radio 时 渲染后台数据时将单选按钮设为不可修改 给input加上disabled后 按钮颜色变灰 且通过css修改样式也无法改变 通过百度尝试了类似以下方式的几种修改css样式的常用办法解决 但
  • 【Android学习】导入别人的Android项目到AS中

    更新 最好直接导入 有错误再根据对应错误修改 学习阶段 下载学习他人的项目是必不可少的一步 但是新手又常常会遇到各种奇葩的问题 问题不可怕 可怕是自己退缩 总结下自己的一些经验 望对后来的你有所帮助 一 快速更改 在移植别人项目之前 最好先
  • 华为机试题69-矩阵乘法

    描述 如果A是个x行y列的矩阵 B是个y行z列的矩阵 把A和B相乘 其结果将是另一个x行z列的矩阵C 矩阵的大小不超过100 100 输入描述 第一行包含一个正整数x 代表第一个矩阵的行数 第二行包含一个正整数y 代表第一个矩阵的列数和第二
  • 20210220--CTF小笔记之常见的md5碰撞

    欢迎大家一起来Hacking水友攻防实验室学习 渗透测试 代码审计 免杀逆向 实战分享 靶场靶机 求关注 0e开头的md5和原值 QNKCDZO 0e830400451993494058024219903391 s878926199a 0e
  • 小程序内嵌webview实现支付

    点击上方 青年码农 关注 回复 特效源码 可获取各种资料 目前的一个小程序项目需要把客户之前的h5页面嵌入到现在的小程序中 并且之前的支付功能要正常 小程序提供了webview开放能力供我们使用 但是不允许在webview直接调起微信支付
  • 重载的分析

    前言 在c 中 出现重载的概念 其实就是一个高级语言的象征 他的出现就是机器语言更加的自然化 他其实可以理解位我们自然语言中的动词 它可以和不同的名词起到不同的功能 重载 定义 用一个相同的函数名来定义不同的函数 重载的条件 参数的个数不同
  • CMSIS-RTOS的信号量使用备忘

    说明 因为要使用CMSIS RTOS的信号量 所以需要了解以下几点功能 1 接收信号量时 返回值的意思 2 接收信号量时 如果信号量容器不只为一 那么是否可以再次接收到 3 发送信号量是否有限制 带着以上问题做了一个测试程序 例一 程序代码
  • strace ltrace记录

    strace 安装 常用选项 报错 strace trace system calls and signals ltrace A library call tracer 安装 首次使用可能出现这个提示 就是没安装 yum y install
  • ubuntu 远程服务器文件与本地文件互传

    放在这里自学 cite https blog csdn net Iv zzy article details 109412198 1 从服务器下载文件到本地 scp r 远程服务器用户名 远程IP 需要下载的文件路径 本地存放文件路径 2
  • 金融分析与风险管理——资本资产定价模型

    金融分析与风险管理 资本资产定价模型 1 系统性风险与非系统性风险 2 资本资产定价模型 1 系统性风险与非系统性风险 在理论上 股票面临的风险可以抽象的划分为系统性风险与非系统性风险 系统性风险 不可分散风险 也称市场风险 通常是由于公司
  • 数据挖掘十大算法(一):决策树算法 python和sklearn实现

    学完到第三章 决策树 python代码实现的仅是ID3算法 sklearn为优化过的C4 5 这里做一个详细的总结包括 原理 代码 可视化 scikit learn实现 皆为亲自实践后的感悟 以下进入正文 早前简单了解了决策树的原理 然后为
  • clang与gcc的区别

    gcc g 和 clang clang 都是Linux操作系统中常用的C C 编译器 gcc g 是gnu标准下的Linux的编译器 clang是一个C 编写 基于LLVM Low Level Virtual Machine 底层虚拟机 是
  • QT 设置程序图标

    在qt应用程序中 我们能想到的图标一般就以下三种 icon种类 应用窗口左上角的 图标 setWindowIcon 状态栏上显示的图标 setWindowIcon 可执行程序本身的图标 两种设置方式 下面会讲 对于以上三种图标都该怎么样设置
  • 【PTA】判断一个数是否为回文数

    1 题目 如果一个数与它的反转数相等 则该数为回文数 输入一个数 判断是否为回文数 输入格式 输入一个数 输出格式 若XX是回文数 则输出 XX 是回文数 若不是 则输出 XX 不是回文数 输入样例1 6234326 输出样例1 62343
  • radius认证服务器系统,03-Radius认证配置举例

    RADIUS 是一种用于在需要认证其链接的网络访问服务器 NAS 和共享认证服务器之间进行认证 授权和记帐信息的文档协议 RADIUS在运维审计系统中 主要体现的是认证功能 收集RADIUS服务器信息 IP地址 RADIUS端口号 RADI
  • 快速理解python中的可迭代对象、迭代器、生成器

    快速学会python中的可迭代对象 迭代器 生成器 今天周一 又要开始新的一周的学习了 加油鸭 多学一点不吃亏哈哈 迭代 什么是迭代 迭代就是将重复的代码进行执行 处理相似的数据集 并且上一个迭代的结果会给到下一次 作为初始化值进行下一次的
  • 利用Jmeter对禅道进行性能测试

    前言 jmeter工具的学习和使用 一 背景 前段时间没事 自己在虚拟机上搭建了一个禅道环境 并在外机上安装jmeter 编写脚本对禅道进行简单的性能测试 二 操作步骤 1 环境搭建 1 1 禅道环境搭建 本地电脑安装VMware Work