接口测试01- Jmeter-线程进程-环境变量
JMeter 是 Apache 组织使用 Java 开发的一款测试工具 ,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。
-
它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、FTP 服务器, 等等。
-
JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。
-
另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
1. 接口测试
2. 性能测试
3. Web自动化测试
4. 数据库测试
5. JAVA程序测试
优点:
1. 开源免费,扩展性强,可以基于JMeter现有实现,实现功能拓展
2. 跨平台
3. 支持多协议
4. 小巧
5. 功能强大
缺点:
1. 不支持 IP 欺骗(LoadRunner 支持IP欺骗)
2. 不能直接测试前端
下载: https://jmeter.apache.org/download_jmeter.cgi
安装: 直接解压缩即可
配置: 考虑到中文乱码问题,请先修改编码集
**需求:** 使用 JMeter 访问学生管理系统的查询学院信息接口
1)、启动 JMeter 并搭建基本应用框架(固定流程)
测试计划下添加线程组
组件: 是 Jmeter 中的一些功能点实现(比如: 线程组、http请求、查看结果树 .....),每个组件都对应一定的功能实现
元件: 对组件按照性质归类分组,作用:方便管理组件
2.1 概念(记住)
进程:正在运行的程序 = 程序启动,进程创建,程序退出,进程释放
线程:进程中的执行线索 = 游戏中,能动的角色 或者 迅雷每一部电影下载,底层都对应一个线程实现
线程组:对线程按照性质归类分组 = 比如: 植物大战僵尸,划分三组能量组、攻击组、破坏组
层级关系:进程 > 线程组 > 线程 (一个进程包含多个线程组,一个线程组包含多个线程)
并发执行:程序中的多个线程同时执行 = 多部电影下载 = 线程结束顺序与启动顺序不一定一致
顺序执行:程序中的多个线程按照先后顺序依次执行 = 电影先下载完毕,然后再播放 = 线程结束顺序与启动顺序一致
方便管理线程
2.3 实现_层级关系&执行顺序
层级结构
独立运行每个线程组
线程数设置为 10 循环次数设置为1, 与线程数设置为1 循环次数设置为 10,执行结果一致,有区别吗?
答: 有区别,线程一般用于模拟虚拟用户,前者:测试场景是 10 个用户,每个用户访问一次服务器;而后者:测试场景是一个用户循环访问10次服务器
tearDown:最后执行的线程组,一般用于资源卸载操作
PS: Jmeter 实现接口自动化测试时,会调用这两个线程组
前提: 查看结果树组件添加位置不同,对应生效的取样器也不一样
-
添加在测试计划下: 对所有线程组的所有取样器生效
-
添加在线程组下: 只对当前组内的取样器生效
-
添加在取样器下: 只对当前直接父级取样器生效
优化策略:
-
可以创建一个单独的变量封装,工具的安装路径
-
在 PATH 当中,不是直接设置持续的安装路径,而是调用变量
-
以后程序安装路径发生改变时,只需要修改步骤1的变量,不需要直接操作 PATH
5 实现_配置JMETER环境变量
后期分布式等操作介绍时,会使用到PATH变量,需要在命令行调用部分实现,需要将:
前提: 需要大家配置 JMETER_HOME
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;
%JMETER_HOME%\lib\jorphan.jar;
%JMETER_HOME%\lib\logkit-2.0.jar;
上述三个 jar 文件配置进 PATH