前言
在软件测试工作中,接口测试也是必不可少的,有很多测试人员可能只会基础的业务功能测试,那么我们今天来分享一下常用的接口测试工具Jmeter的详细使用。
安装与配置
一、JDK的环境安装
选择自己对应的系统类别,电脑支持的位数/芯片,点击下载地址即可下载(建议使用目前稳定的版本 1.8)
后续进行傻瓜式安装,直接点击 下一步 即可,安装完成后,需要配置JDK的环境变量,按照以下步骤进行:
a. 右键点击 我的电脑→属性→高级系统设置→环境变量
b. 系统变量→新建,新建一个变量名 JAVA_HOME,变量值为JDK的安装目录
c. 系统变量→新建,新建一个变量名 CLASSPATH,变量值为:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
d. 找到 path 变量,双击开始编辑,点击 新建,输入第一个值 %JAVA_HOME%\bin,再点击 新建,输入第二个值 %JAVA_HOME%\jre\bin
%JAVA_HOME%\bin %JAVA_HOME%\jre\bin
e. 点击 确定,关闭所有已打开的环境变量配置窗口,打开一个新的CMD命令窗口,输入java -version,检查安装java的版本,再输入 java,查看输出内容是否正确(只要出现相关的提示即可),再输入 javac,一样的进行检查
java -version的检查结果:
java version "1.8.0_341" Java(TM) SE Runtime Environment (build 1.8.0_341-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.341-b10, mixed mode)
java的检查结果:
用法: java [-options] class [args...] (执行类) 或 java [-options] -jar jarfile [args...] (执行 jar 文件) 其中选项包括: -d32 使用 32 位数据模型 (如果可用) -d64 使用 64 位数据模型 (如果可用) -server 选择 "server" VM 默认 VM 是 server, 因为您是在服务器类计算机上运行。 -cp <目录和 zip/jar 文件的类搜索路径> -classpath <目录和 zip/jar 文件的类搜索路径> 用 : 分隔的目录, JAR 档案 和 ZIP 档案列表, 用于搜索类文件。 -D<名称>=<值> 设置系统属性 -verbose:[class|gc|jni] 启用详细输出 -version 输出产品版本并退出 -version:<值> 警告: 此功能已过时, 将在 未来发行版中删除。 需要指定的版本才能运行 -showversion 输出产品版本并继续 -jre-restrict-search | -no-jre-restrict-search 警告: 此功能已过时, 将在 未来发行版中删除。 在版本搜索中包括/排除用户专用 JRE -? -help 输出此帮助消息 -X 输出非标准选项的帮助 -ea[:<packagename>...|:<classname>] -enableassertions[:<packagename>...|:<classname>] 按指定的粒度启用断言 -da[:<packagename>...|:<classname>] -disableassertions[:<packagename>...|:<classname>] 禁用具有指定粒度的断言 -esa | -enablesystemassertions 启用系统断言 -dsa | -disablesystemassertions禁用系统断言 -agentlib:<libname>[=<选项>] 加载本机代理库 <libname>, 例如 -agentlib:hprof 另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help -agentpath:<pathname>[=<选项>] 按完整路径名加载本机代理库 -javaagent:<jarpath>[=<选项>] 加载 Java 编程语言代理, 请参阅 java.lang.instrument -splash:<imagepath> 使用指定的图像显示启动屏幕 有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html。
javac的检查结果:
用法: javac <options> <source files> 其中, 可能的选项包括: -g 生成所有调试信息 -g:none 不生成任何调试信息 -g:{lines,vars,source} 只生成某些调试信息 -nowarn 不生成任何警告 -verbose 输出有关编译器正在执行的操作的消息 -deprecation 输出使用已过时的 API 的源位置 -classpath <路径> 指定查找用户类文件和注释处理程序的位置 -cp <路径> 指定查找用户类文件和注释处理程序的位置 -sourcepath <路径> 指定查找输入源文件的位置 -bootclasspath <路径> 覆盖引导类文件的位置 -extdirs <目录> 覆盖所安装扩展的位置 -endorseddirs <目录> 覆盖签名的标准路径的位置 -proc:{none,only} 控制是否执行注释处理和/或编译。 -processor <class1>[,<class2>,<class3>...] 要运行的注释处理程序的名称; 绕过默认的搜索进程 -processorpath <路径> 指定查找注释处理程序的位置 -parameters 生成元数据以用于方法参数的反射 -d <目录> 指定放置生成的类文件的位置 -s <目录> 指定放置生成的源文件的位置 -h <目录> 指定放置生成的本机标头文件的位置 -implicit:{none,class} 指定是否为隐式引用文件生成类文件 -encoding <编码> 指定源文件使用的字符编码 -source <发行版> 提供与指定发行版的源兼容性 -target <发行版> 生成特定 VM 版本的类文件 -profile <配置文件> 请确保使用的 API 在指定的配置文件中可用 -version 版本信息 -help 输出标准选项的提要 -A关键字[=值] 传递给注释处理程序的选项 -X 输出非标准选项的提要 -J<标记> 直接将 <标记> 传递给运行时系统 -Werror 出现警告时终止编译 @<文件名> 从文件读取选项和文件名
二、下载JMeter与配置环境
下载JMeter:
- 访问JMeter官网下载JMeter。
- 下载后解压,得到JMeter的安装目录。
环境配置:
- 新建 JMETER_HOME 环境变量,变量值为JMeter解压的路径。
- 编辑 CLASSPATH 变量,在结尾添加:
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;
打开JMeter的bin目录下的jmeter.bat文件启动JMeter。
- JMeter将会打开两个窗口,一个是JMeter的命令窗口,另一个是JMeter的图形操作界面。
设置成中文:
- 临时设置为中文:在JMeter界面右上角的选项中选择 Options → Choose Language → 选择 中文。
- 永久设置为中文:在JMeter的bin目录下找到jmeter.properties文件,编辑并找到第37行,修改为:
JMeter做接口测试
一、线程组
1. 在测试计划中右键 → 添加 → 线程 → 线程组。
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar; language=zh_CN
2. 配置线程组参数:
- 线程数: 虚拟用户数。
- 准备时长: 启动所有虚拟用户所需时间。
- 循环次数: 每个虚拟用户发送请求的次数。
二、HTTP请求
1. 在线程组中右键 → 添加 → 取样器 → HTTP请求。
2. 配置HTTP请求参数:
- 请求名称: 请求标识,可不改。
- Web服务器信息: 协议、域名或IP、端口号。
- 接口请求: 请求方法、路径、编码格式。
- 参数传递: 消息体数据存储JSON信息。
三、HTTP信息头管理器
1. 在线程组中右键 → 添加 → 配置元件 → HTTP信息头管理器。
2. HTTP信息头管理器用于存储请求头信息。
四、查看结果
1. 在线程组中右键 → 添加 → 监听器 → 查看结果树。
五、开始测试
点击 运行,JMeter将模拟虚拟用户发送HTTP请求,可以通过查看结果树来验证接口调用是否成功。
Http请求默认值
1. 在测试计划中右键 → 添加 → 配置元件 → HTTP请求默认值。
2. 配置公共参数,如协议、IP、端口号、编码等。在每个HTTP请求中填写独有信息,以覆盖默认值。
注:加了http请求默认值之后,在单个http请求里面还填写了同样的数据,那么以哪个为准,就近原则——就近原则!
Http Cookie管理器
1. 在测试计划中右键 → 添加 → 配置元件 → HTTP Cookie管理器。
2. HTTP Cookie管理器自动存储和发送cookie,用于同源站点的HTTP请求。解决报错缺少cookies问题。
结语
那么我们今天就分享到这里了,下次再见