`

JMeter对各种类型接口的测试

阅读更多

 

JMeter对各种类型接口的测试

 

默认做接口测试前,已经给出明确的接口文档(如,http://test.nnzhp.cn/wiki/index.php?doc-view-59);本地配好了JMeter 3.x的运行环境;

 

打开JMeter,添加一个线程组和该线程组的查看结果树。以下的几种接口请求我们都在这个线程组中添加和运行。

 

如果你的JMeter返回数据是乱码,解决办法是,在JMeter安装路径的bin目录下,打开文件jmeter.properties,把Sampleresult.default.encoding的值改为 utf-8 即可。

 

1. 普通的以key-value传参的get请求

 

e.g. 获取用户信息

 

添加http请求;填写服务器域名或IP;方法选GET;填写路径;添加参数;运行并查看结果。

 

 https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510225330129-372754067.jpg

 

 2. Json串传参的post请求

 

e.g. 获取用户余额

 

添加http请求;填写服务器域名或IP;方法选POST;填写路径;在参数区域选Body Data标签;写入Json串参数,注意Json格式;运行并查看结果。

 

 https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510225345269-1296866128.jpg

 

 *注意:

 

Json传参时,往往参数相对复杂,规模较大,很多时候是Json串再嵌套Json串,在写入body的时候如果哪里格式不对会影响传参,而JMeter本身是不能对Json进行格式校验的(Postman可以进行简单的Json校验),我们可以借助这个网站来校验你的Json串的格式,www.bejson.com 再把确保格式正确的Json串填入body

 

 

 

3.  请求时需要http权限验证

 

e.g. 修改用户余额

 

添加http请求;填写服务器域名或IP;方法选POST;填写路径;填写参数;

 

 https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510225419457-454919193.jpg

 

添加授权管理器,右击线程组->添加->配置元件->HTTP授权管理器;

 

 https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510225436941-1064560549.jpg

 

打开HTTP授权管理器,在基础URL添加路径;填写用户名、密码(接口文档会给出);添加域即请求的服务器域名或IP;其他默认;

 

 https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510225451644-193260402.jpg

 

运行请求并查看结果。(该接口暂时有问题请求返回500,只要掌握需要权限验证的接口如何做就好)

 

 

 

4.  请求时需要添加请求标头

 

e.g. 获取用户信息2

 

添加http请求;填写服务器域名或IP;方法选POST;填写路径;填写参数;

 

 https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510225534504-41616633.jpg

 

添加HTTP信息头管理器,右击线程组->添加->配置元件->HTTP信息头管理器;

 

 https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510225543629-461536406.jpg

 

打开HTTP信息头管理器,参照接口文档填写好header信息;

 

 https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510225552582-984163710.jpg

 

运行请求并查看结果。

 

 

 

5.  请求时需要添加Cookie

 

e.g. 修改用户余额2

 

添加http请求;填写服务器域名或IP;方法选POST;填写路径;填写参数;

 

 https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510225627222-1524249088.jpg

 

添加HTTP Cookie管理器,右击线程组->添加->配置元件->HTTP Cookie管理器;

 

 https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510225637051-1210909906.jpg

 

打开Cookie管理器,参照接口文档填写好Cookie信息;

 

 https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510225646019-537903291.jpg

 

 发送请求并查看结果。

 

 

 

6.  请求通过某个接口上传文件

 

    e.g.上传文件

 

    添加http请求;填写服务器域名或IP;方法选POST;填写路径;在参数区域选Files Upload标签,添加文件全名(包含绝对路径,也可以点击浏览按钮添加),写入参数名;发送请求并查看结果。

 

 https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510225840926-2021945425.jpg

 

 

 

 

 

JMeter的参数化

 

1. 指定参数值

 

这种方法常用来解决线程组中多个请求共用相同的数据,比如我们以上所有请求都有相同的IP地址,当地址改变时可以一改全改。

 

添加用户定义的变量,右击线程组->添加->配置元件->用户定义的变量;

 

 https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510225913379-728621487.jpg

 

打开用户定义的变量,添加变量,写好名称和值;

 

 https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510225923988-22481925.jpg

 

脚本中用到该值的所有地方都可以引用这个变量名了,引用变量的格式为 ${变量名}

 

 https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510225932004-913899852.jpg

 

2. 借助函数生成参数

 

测试过程中,有时候数据不适合被指定,可选择借助函数来生成,以下是最常用的几种。

 

  • ž     用函数生成随机数:(__Random

    Jmeter中点击选项->函数助手对话框;

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510225944394-1241273180.jpg

    在弹出的对话框中选__Random,填写随机数的范围,点击生成按钮,就看到你需要的字符串了;

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230114176-402374455.jpg

    尝试在请求中使用生成的随机数,把刚拷贝的字符串粘贴到请求的参数里;

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230122144-2095661283.jpg

    发送请求,查看请求中参数值的情况,参数生效了。

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230130582-739910983.jpg

     

 

  • ž    用函数生成当前时间:(__time

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230144004-1075060714.jpg

     

 

  • ž    用函数生成通用的唯一识别码:(__UUID

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230201707-479016938.jpg

     

     

    3. 文件传参

    用于读取在文件中维护的参数,如参数文件内容如下;

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230217301-461996633.jpg

    注意,Jmeter读取文件总的参数是从第一行就开始了的,千万不要犯下面的错误。

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230226941-1613343434.jpg

    Jmeter中右击线程组->添加->配置元件->CSV Data Set Config

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230237191-1519483740.jpg

    打开设置窗口,写入参数文件的全名(含绝对路径),变量名,Delimiter就用默认的逗号,表示在准备参数文件时参数表的列之间用逗号隔开;

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230251582-144227995.jpg

    在请求中引用参数时应该是酱紫的:${username}  ${pwd},用它们来顶替对应的参数值。

     

    4. 关联传参

    在线程组内,当你想用一个请求的响应结果作为另一个请求的入参时就需要用到关联。

 

  • ž用正则表达式关联

    思路是先从某个请求的响应数据中提取你需要的值,在把这个值在另一个请求中入参,操作如下:

    在需要被提取响应数据的请求下添加正则表达式提取器,右击添加->后置处理器->正则表达式提取器;

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230310082-1084910067.jpg

    在正则表达式提取器中填写引用名称,不说也知道用途;正则表达式,最简单的办法是在响应数据中把要提取的目标值左右若干字符包含目标值的一行拷贝出来,粘贴到正则表达式框内,在把目标值用一对小括号替换,括号里用添上合适的匹配符本例如(.*)注意在响应数据中拷贝时尽量避开需要转义的字符如果不能避开,请转义;模板通常固定填$1$;匹配数字1代表区匹配的第一个值;缺省值是在匹配失败时取得的值,通常用来检查匹配是否成功;

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230324566-180395352.jpg

    ${age}入参给另一个请求,查看结果传参成功。

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230340629-1226134396.jpg

    https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230348910-1017475744.jpg

     

     

 

  • žJson Path Extractor 插件关联

    只针对Json格式的Response 取值,右击请求添加->后置处理器->JSON Path Extractor

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230411066-302824063.jpg

    JSON Path Extractor中填入引用名和JSONPath Expression

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230419285-1629961254.jpg

    在另一个请求中入参,也和上面的结果一样转参成功。

    注意,JSON Path Extractor这个插件只能在Jmeter3.x以上的版本安装。

     

    Jmeter添加断言检查结果

    右击请求添加->断言->响应断言;

    https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230442222-1670909701.jpg 

     

    添加并写入希望在响应结果中看到的内容;

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230456972-1257602722.jpg

    发送请求,查看结果;

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230512097-145244588.jpg

     Jmeter操作Mysql

    测试计划添加.jar mysql-connector-java-5.1.7-bin.jar用于使Jmeter可以读取Mysql

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230532738-1848914125.jpg

     线程组添加 JDBC Connection Configuration (添加->配置元件-> JDBC Connection Configuration)用于配置JmeterMysql的连接;

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230603004-1726759098.jpg

    JDBC Driver class是固定的,Jmeter操作各类数据的Driver参考下图;

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230612441-833124659.jpg

    线程组添加JDBC Request(添加->Sampler-> JDBC Request用于写sql来操作Mysql

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230633769-91723840.jpg

    发送请求,成功访问Msql

     https://images2015.cnblogs.com/blog/1025008/201705/1025008-20170510230649785-1388309077.jpg

     

 

分享到:
评论

相关推荐

    jmeter性能(接口)测试工具

    JMeter提供了一个直观的GUI界面,让用户可以轻松地创建、编辑和执行接口测试计划。通过添加线程组、取样器、监听器、断言等元素,用户可以构建复杂的测试场景,模拟大量并发用户对服务器进行请求,以检测系统的稳定...

    Jmeter接口测试,性能压测等

    【Jmeter接口测试,性能压测等】 Apache JMeter是一款强大的、开源的性能测试工具,主要设计用于对Web应用进行压力和负载测试。它也可以应用于其他类型的接口和服务,包括FTP、SMTP、POP3、HTTP、HTTPS等。JMeter...

    Jmeter 4.0 性能 接口 软件测试

    - JMeter支持HTTP、HTTPS、FTP、SOAP、REST等多种协议的接口测试,可以创建各种请求类型,如GET、POST、PUT、DELETE等。 - 支持参数化测试,通过CSV Data Set Config或其他方式动态传递参数,实现数据驱动测试。 ...

    jmeter 各种请求接口使用方法

    jmeter 是 Apache 组织开发的基于 Java 的压力测试工具,用于对软件做压力测试。它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域。jmeter 可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、...

    Jmeter接口性能及自动化测试实战(基于5.2.1版本)视频教程

    **二、接口测试** 1. **HTTP sampler**:学习如何配置HTTP请求默认值,使用HTTP Sampler发送GET、POST、PUT、DELETE等不同类型的HTTP请求。 2. **参数化测试**:使用CSV Data Set Config进行数据驱动测试,模拟不同...

    接口压力测试工具jmeter

    JMeter是一款广泛应用于接口压力测试的专业工具,尤其在IT行业中,它因其易用性和丰富的功能而备受推崇。这款开源软件由Apache软件基金...通过不断的实践和学习,你可以在JMeter的帮助下实现更高效、更全面的接口测试。

    支持webservice接口测试jmeter3.0

    在IT行业中,接口测试是软件质量保证的关键环节之一,特别是对于Web服务接口,其功能正确性和性能稳定性显得尤为重要。Apache JMeter是广泛使用的开源性能测试工具,它不仅适用于传统的HTTP协议测试,还支持对Web ...

    apache-jmeter-5.4.3,接口压测工具jmeter

    它最初设计用来测试Web应用,但随着时间的发展,JMeter的功能已经扩展到支持各种类型的接口测试,包括HTTP、FTP、TCP、JDBC等,使其成为了一款多用途的性能测试工具。 JMeter的工作原理是模拟多个并发用户执行特定...

    基于Jmeter+Ant+SVN+Jenkins实现接口自动化测试

    通过JMeter,我们可以设计各种类型的测试计划,如HTTP请求、SOAP/REST服务测试等,来模拟用户对接口的并发访问,从而评估系统的性能和稳定性。 1. **JMeter使用**: - **创建测试计划**:定义测试目标,如请求类型...

    Jmeter websocket测试完整插件包

    然而,通过安装特定的插件,比如“JMeter WebSocket Samplers”,我们可以扩展JMeter的功能,使其能够对WebSocket服务进行负载和压力测试。 这个"Jmeter websocket测试完整插件包"包含了一个名为"JMeter-WebSocket...

    Jmeter+Jenkins+maven接口自动化集成.rar

    **JMeter** 是一个开源的性能测试工具,主要适用于Web应用的压力和负载测试,但也可以用于接口测试。JMeter提供了一个图形化的界面,使得测试脚本的编写和执行变得简单易懂。在接口自动化测试中,我们可以创建HTTP...

    接口性能压测工具——jmeter

    接口测试是JMeter的另一个强项,它支持多种协议,如HTTP、HTTPS、FTP等,使我们能够对后端服务的API接口进行功能和性能测试。在JMeter中,我们可以通过HTTP Request sampler创建接口请求,设置方法(GET、POST等),...

    jmeter+websocket接口测试所需插件集合

    本文将详细介绍如何利用JMeter进行WebSocket接口测试,并探讨相关的插件集合。 首先,我们需要安装JMeter的WebSocket插件。这个插件集合通常包括以下几个组件: 1. WebSocket Sampler by Andy Wilkins:这是JMeter...

    jmeter并发java接口测试.pdf

    《JMeter并发Java接口测试详解》 JMeter是一款强大的性能测试工具,被广泛应用于各种类型的性能测试场景,包括对Java接口的并发测试。它不仅是一个工具,更是一个框架,能够支持多种类型的性能测试,如文件、...

    apache-jmeter-3.1接口测试工具

    1. **接口测试**:支持HTTP、HTTPS、FTP、JMS、SMTP等多种协议,可以创建各种类型的请求,如GET、POST、PUT等,同时支持表单数据、JSON、XML等格式的数据提交。 2. **负载测试**:可设置多线程(虚拟用户)执行测试...

    jmeter接口测试dubbo插件 2.8.4.zip

    首先,JMeter接口测试Dubbo插件是为了解决JMeter无法直接对Dubbo服务进行接口测试的问题。Dubbo,阿里巴巴开源的一款高性能、轻量级的RPC框架,用于构建高性能、分布式的Java应用。通过这个插件,测试人员可以在...

    这个是jmeter的使用测试dubbo接口的工具包,插件

    JMeter是一款强大的性能测试工具,尤其适用于Web应用的压力测试,但其灵活性也使得它能够用于各种其他协议和服务的测试,包括Dubbo接口。在本文中,我们将深入探讨如何使用JMeter来测试Dubbo接口,以及如何利用提供...

    Jmeter自动化测试框架简介(不含代码).pptx

    Jmeter是一个功能强大且灵活的自动化测试工具,可以用于各种类型的测试。Jmeter的使用方法包括: * 安装Jmeter:下载并安装Jmeter。 * 创建测试计划:创建测试计划,定义测试用例。 *录制测试脚本:录制测试脚本,...

    接口测试工具-apacche-jmeter

    Apache JMeter是一款强大的开源接口测试工具,主要用于评估和测试各种应用程序的性能和负载能力,尤其在接口测试领域表现卓越。JMeter由Apache软件基金会开发,它支持多种协议,包括HTTP、HTTPS、FTP、JDBC、SMTP等...

    jmeter性能测试工具

    Apache JMeter是一款强大的开源性能测试工具,主要用于模拟大量并发用户对服务器、网络或者数据库等进行压力测试,评估其在高负载下的性能和稳定性。这款工具最初设计为HTTP测试工具,但随着时间的发展,它已经扩展...

Global site tag (gtag.js) - Google Analytics