`

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接口测试详解 #### 一、引言 在软件开发过程中,接口测试是非常重要的一环,它能够确保各个组件之间能够正确无误地通信。对于初学者来说,掌握如何使用工具进行高效的接口测试至关重要。本文档将详细...

    jmeter进行api接口测试示例

    JMeter是一种开源的性能测试工具,主要用来测试web应用或服务器的性能和负载。...通过对JMeter工具的熟练运用,测试人员可以对各种类型的API接口进行详尽的测试,提前发现潜在问题,提高软件质量。

    Jmeter对接口测试入参实现MD5加密

    JMeter是Apache组织开发的一款强大的性能测试工具,它支持多种类型的测试场景,包括接口测试。在JMeter中实现MD5加密,我们可以使用两种方法:自带的函数助手和BeanShell脚本。 ### 自带函数助手 JMeter提供了内置...

    jmeter性能(接口)测试工具

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

    jmeter接口测试-http接口请求

    JMeter是一款开源的压力测试工具,它不仅可以用来进行性能测试,还可以进行功能测试,特别是在接口测试方面具有强大的功能。本文将详细介绍如何使用JMeter进行HTTP接口测试。 #### 二、基本接口请求 1. **同级组件...

    jmeter接口测试案例

    ### jmeter接口测试案例 #### 1. 相关概念 - **1.1 引言** 当一个软件提供了注册功能,并通过了功能测试,但上线后却出现了大量异常用户注册的情况(如账号密码超长、为空或格式错误等),这表明单纯的功能测试...

    Jmeter接口测试,性能压测等

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

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

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

    Jmeter 4.0 性能 接口 软件测试

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

    JMeter 之TCP服务器并发压力测试

    测试人员可以利用JMeter提供的不同取样器,模拟各种不同类型的负载,从而对被测试软件进行全面的性能评估。由于JMeter的测试是通过发送请求到服务器并记录响应时间及返回状态来进行的,因此它的测试结果非常直观地...

    jmeter 各种请求接口使用方法

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

    JMeter接口自动化测试.pdf

    总的来说,JMeter提供了强大的接口测试功能,通过掌握其使用方法和克服相关难点,可以有效地进行接口自动化测试,从而提升测试效率和质量。同时,持续学习和使用其他工具如Postman和SoapUI,可以帮助我们更好地理解...

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

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

    jmeter性能接口一本通.pdf

    整本书详细介绍了JMeter从基础到高级的各方面知识,旨在帮助读者系统掌握JMeter的使用,并在性能测试和接口测试方面有一个质的提升。同时,作者也提示,如果读者在学习过程中遇到问题,可以及时与作者联系获取帮助。

    接口压力测试工具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之接口自动化测试应用.pdf

    - **支持多种测试类型**:它适用于接口测试、性能测试甚至是UI测试,并支持Java和Python等多种脚本语言。 - **易于学习和使用**:相比其他测试框架,Jmeter的学习曲线较低,使用者能够较快上手。 - **脚本生成效率高...

    Jmeter websocket测试完整插件包

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

Global site tag (gtag.js) - Google Analytics