做网站数据库要建什么表,ui培训机构哪家好,在线设计海报网站,怎么做网站文章优化目录 一.前言
二.线程组
三.线程组的组件
四.线程组-HTTP请求
1、JSON提取器
2、XPATH提取器
3、正则表达式提取器
五.线程组-断言
1、响应断言
2、JSON断言
六.创建测试
1.创建线程组
2.配置元件
3.构造HTTP请求
4.添加HTTP请求头
5.添加断言
6.添加查看结果树…目录 一.前言
二.线程组
三.线程组的组件
四.线程组-HTTP请求
1、JSON提取器
2、XPATH提取器
3、正则表达式提取器
五.线程组-断言
1、响应断言
2、JSON断言
六.创建测试
1.创建线程组
2.配置元件
3.构造HTTP请求
4.添加HTTP请求头
5.添加断言
6.添加查看结果树
7.添加汇总报告 一.前言
压力测试是每一个Web应用程序上线之前都需要做的一个测试他可以帮助发现系统中的瓶颈问题减少发布到生产环境后出问题的几率预估系统的承载能力使能根据其做出一些应对措施。所以压力测试是一个非常重要的步骤下面使用一款压力测试工具JMeter。
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载来自不同压力类别下测试它们的强度和分析整体性能。另外JMeter能够对应用程序做功能/回归测试通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性JMeter允许使用正则表达式创建断言。
Apache jmeter 可以用于对静态的和动态的资源文件ServletPerl脚本java 对象数据库和查询FTP服务器等等的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。可以使用它做性能的图形分析或在大并发负载测试服务器/脚本/对象。 官网Apache JMeter - Download Apache JMeter 准备工作
1.因为JMeter是使用JAVA写的所以使用JMeter之前先安装JAVA环境
2.解压下载的二进制包进入bin目录使用jmeter.bat启动程序。
3.启动之后会有两个窗口一个cmd窗口一个JMeter的 GUI。
前面不要忽略CMD窗口的提示信息
Dont use GUI mode for load testing !, only for Test creation and Test debugging.For load testing, use NON GUI Mode:jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder] increase Java Heap to meet your test requirements:Modify current env variable HEAP-Xms1g -Xmx1g -XX:MaxMetaspaceSize256m in the jmeter batch fileCheck : https://jmeter.apache.org/usermanual/best-practices.html
上面的意思就是不要使用GUI运行压力测试GUI仅用于压力测试的创建和调试执行压力测试请不要使用GUI。使用下面的命令来执行测试 jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
并且修改JMeter批处理文件的环境变量HEAP-Xms1g -Xmx1g -XX:MaxMetaspaceSize256m 更改语言为中文
官方默认为提供了简体中文。通过 【Options】-【Choose Language】变更为简体中文
长期汉化:修改 Jmeter 安装目录的 bin 目录下的配置文件 jmeter.properties 添加以下字段language zh_cn
更改外观
默认外规颜色是黑色,更改如下 二.线程组 第一部分
在取样器错误后要执行的动作
取样器就相当于是postman发送请求接口当接口请求失败时要执行的动作
继续继续执行接下来的操作启动下一进程循环忽略错误执行下一个循环停止线程退出当前线程不再执行此线程的任务操作停止测试等待当前执行的采样器结束接着结束整个测试立即停止测试直接停止整个测试
第二部分
线程数即模拟用户数量Ramp-Up时间秒达到指定线程数所需要的时间。比如线程数为100此处为5秒100/520那么相当于每秒启动20个线程用时5秒达到100循环次数要循环的次数如果勾选“永远”会一直循环下去Same user on each iteration表示每个迭代都用相同的线程。比如线程数为1循环次数为5那么创建好1个线程后每次循环迭代都用这个线程直到测试结束。如果不勾选那么每次循环会销毁之前的线程再创建1个新的线程测试结束总共会经过5次创建销毁线程浪费了计算机资源线程多了甚至可能会影响性能测试结果所以默认是勾选的。再比如这1个线程中有登录操作加入cookie后这个线程5次迭代下来用的都是这一个cookie
第三部分
延迟创建线程直到需要勾选当线程需要执行的时候才会被创建如果不勾选在计划开始的时候所有的线程就都创建好了调度器
持续时间秒表示多少秒后结束测试
启动延迟秒表示点击开始执行计划后延迟多少秒才真正开始执行 三.线程组的组件
元件多个类似功能组件的容器类似于类 1.取样器
发送接口请求类似于代码中requests封装的请求接口方法。
2.逻辑控制器
控制语句的执行顺序。
3.前置处理器
在取样器发送接口请求之前需要执行的操作比如删除数据恢复数据生成数据等。
4.后置处理器
在取样器发送接口请求之后需要执行的操作比如恢复数据或处理响应数据提取需要的值等。
5.断言
判断是否返回了预期的结果。
6.定时器
一般用来延时发送接口请求类似于代码中的强制等待sleep。
7.测试片段
相当于封装一段代码供其他脚本使用。
8.配置元件
用于初始化变量以便采样器使用。类似于自动化框架中的配置文件。
9.监听器
展示执行结果打印日志信息等。
组件实现独立的某个功能类似于方法 四.线程组-HTTP请求 压力测试请求中的数据传递
在接口请求的过程中接口之间会有数据传递的功能。例如系统登录的功能请求登录的接口一般给返回给用户一个token的字段token会有有效期在有效期内用户所有的请求带上这个token字段服务器 就会知道是哪一个用户做的请求。 关联
当请求之间有依赖关系比如一个请求的入参是另一个请求返回的数据这时候就需要用到关联处理。 Jmeter常用的关联方法 1、JSON提取器
作用:针对JSON格式的响应结果数据进行提取
位置:添加方式:测试计划---线程组---HTTP请求---(右击) 2、XPATH提取器 3、正则表达式提取器 五.线程组-断言
断言让程序自动判断预期结果和实际结果是否一致。
Jmeter常用断言 1、响应断言 2、JSON断言 六.创建测试 1.创建线程组
在“测试计划”上右键 【添加】--【Threads(Users)】--【线程组】。 设置线程数和循环次数。我这里设置线程数为100五秒内完成,循环一次。 2.配置元件
在刚刚创建的线程组上右键 【添加】--【配置元件】--【HTTP请求默认值】。 配置需要进行测试的程序协议、地址和端口,当所有的接口测试的访问域名和端口都一样时可以使用该元件一旦服务器地址变更只需要修改请求默认值即可。 3.构造HTTP请求
在“线程组”右键 【添加-】-【samlper】--【HTTP 请求】设置需要测试的API的请求路径和数据。 4.添加HTTP请求头
在刚刚创建的线程组上右键 【添加】--【配置元件】--【HTTP信息头管理器】。
传输的json数据:Content-Type:application/json,
表单数据:Content-Type:application/x-www-form-urlencoded 5.添加断言
在刚刚创建的线程组上右键 【添加】--【断言】--【响应断言】。 根据响应的数据来判断请求是否正常。我在这里只判断的响应代码是否为200。还可以配置错误信息 6.添加查看结果树
在刚刚创建的线程组上右键 【添加】--【监听器】--【察看结果树】。 直接添加然后点击 运行 按钮就可以看到结果了。 7.添加汇总报告
在刚刚创建的线程组上右键 【添加】--【监听器】--【汇总报告】。 直接添加然后点击运行按钮就可以看到结果了。 测试计划创建完成,记得点保存。 参考文档:
https://zhuanlan.zhihu.com/p/628517879?utm_id0
https://www.cnblogs.com/luoshuai7394/p/17930824.html
https://www.cnblogs.com/stulzq/p/8971531.html