• 0
  • 0
分享
  • 收下这份实操案例,还怕不会用Jmeter接口测试工具——软件测试圈
  • 恬恬圈 2023-06-01 16:12:59 字数 3043 阅读 2684 收藏 0

  一、简介

  JMeter,一个100%的纯Java桌面应用,由Apache组织的开放源代码项目,它是接口功能、自动化、性 能测试的工具。具有高可扩展性、支持HTTP、HTTPS、TCP、等多种协议,还可以自己编写Java脚本对 协议进行扩展。

  官方网站:https://jmeter.apache.org

  二、安装和配置

  1、本机安装好jdk环境。

  2、官网下载压缩包,在任意目录下解压。

  3、修改配置文件,打开Jmeter的bin目录下jmeter.properties,修改:

  language=zh_CN
  sampleresult.default.encoding=utf-8

  4、进入到Jmeter的bin目录下,双击jmeter.bat启动。

1-1.jpg

  三、Jmeter常用组件

  在Jmeter中,可以通过添加不同的组件,来实现不同的功能,常用的组件有:

  测试计划

  一个最基本的组件,所有的其他组件都要在它的内部运行。

  线程组

  线程组代表了一组用户,它可以模拟1个或多个用户,可以发起1次或多次请求,也可以连续发送n秒的 请求。

  取样器

  取样器代表了一个请求,比如HTTP请求,TCP请求等,通过配置服务端接口的ip、端口号和参数等信 息,就可以向服务端发送数据,并拿到响应。

  断言

  断言就是一个预期结果,断言通常是针对某个HTTP请求的,判断HTTP的返回值是否符合断言的规则, 比如是否包含“success”,状态码是否是200等。如果断言通过,Jmeter就认为HTTP请求成功,否则就标 记为失败。

  监听器

  监听器就是在Jmeter测试过程中,获取一些运行数据,比如发送了多少次请求、成功了多少次,失败了 多少次。每次请求和响应的具体内容等。

  四、编写一个HTTP接口脚本

  打开码同学商城卖家管理后台登录页面,输入用户名密码进行登录,通过fiddler,可以抓包登录接口的信息:

  url:/seller/login

  请求方式:GET

  参数:username=mtx-001&password=e10adc3949ba59abbe56e057f20f883e&captcha=1512&uuid=c9835a40-047b- 11ec-ae8f-41d7ee6b2a89

  第一步:创建线程组

  在测试计划上右键,添加线程组,保持默认。

1-2.jpg

  第二步:创建HTTP请求

  在线程组上右键,添加取样器-HTTP取样器,并根据接口的信息,填写协议类型、服务器ip、端口号、 请求方式、路径、请求参数等信息。

1-3.jpg

  第三步:创建监听器

  在线程组上右键,添加监听器-查看结果树,,点击菜单栏运行按钮,这样就能看到接口运行后的请求和 返回数据。

1-4.jpg

  第四、断言

  默认情况下,Jmeter会根据接口的响应状态码是否为200来判断接口是否成功,但是很多时候,200只能代表HTTP请求成功了,但是业务上未必成功。因此还需要对接口的返回数据做判断。因此可以使用 Jmeter断言来对返回数据做判断。

  断言通常是针对某个HTTP请求的,判断HTTP的返回值是否符合断言的规则,比如是否包含“success” 等,如果断言通过,Jmeter就认为HTTP请求成功,否则就标记为失败,在查看结果树中标记为红色。

  常用的断言有Json断言和响应断言。

  Json断言

  针对接口返回是json格式数据的,可以使用json断言,它可以判断json字符串中的某个值是否符合预期。

  比如,登录接口成功后,服务器会返回此用户的username和nickname

  { 
       "access_token": 
  "eyJhbGciOiJIUzUxMiJ9.eyJzZWxmT3BlcmF0ZWQiOjAsInN1YiI6IkNMRVJLIiwicm9sZSI6IlNVUE VSX1NFTExFUiIsImZvdW5kZXIiOm51bGwsInJvbGVzIjpbIkJVWUVSIiwiU0VMTEVSIiwiQ0xFUksiXS wic2VsbGVyTmFtZSI6IjExMSIsImNsZXJrSWQiOjE2LCJ1dWlkIjpudWxsLCJ1aWQiOjE5NjUsInNlbG xlcklkIjo0MSwiY2xlcmtOYW1lIjoibXR4LTAwMSIsImV4cCI6MTYyOTg3MDU5OCwidXNlcm5hbWUiOi JtdHgtMDAxIn0.BEnmRfCU2nfkqMwQVajaxMP5uoUtcyoAsTHMkaK_9RoHwaxS0GNUDY- 9I048wx8LX7pmyMqWl70Q4B31dlVTHw", 
       "uid": 1965, 
       "refresh_token": 
  "eyJhbGciOiJIUzUxMiJ9.eyJzZWxmT3BlcmF0ZWQiOjAsInN1YiI6IkNMRVJLIiwicm9sZSI6IlNVUE VSX1NFTExFUiIsImZvdW5kZXIiOm51bGwsInJvbGVzIjpbIkJVWUVSIiwiU0VMTEVSIiwiQ0xFUksiXS wic2VsbGVyTmFtZSI6IjExMSIsImNsZXJrSWQiOjE2LCJ1dWlkIjpudWxsLCJ1aWQiOjE5NjUsInNlbG xlcklkIjo0MSwiY2xlcmtOYW1lIjoibXR4LTAwMSIsImV4cCI6MTYyOTg3MTE5OCwidXNlcm5hbWUiOi JtdHgtMDAxIn0.54MSaFcXIuGexBeXY-79oO5_8tAHvmEvtbJ0qKUE9A5VpqKmbECahX4zcb_2XQEox- H0aIZX49P9ncRrH22Jgg", 
       "face": null, 
       "role_id": 0, 
       "founder": 1, 
       "nickname": "mtx-001", 
       "username": "mtx-001" 
  }

  添加json断言,判断服务器返回的username是否符合预期。

  在HTTP请求上,右键添加json断言。

1-5.jpg

  解释:

  Assert JSON Path exists:填写Json路径表达式,其中$代表整个json,$.username就是 username对应的值。

  Additionally assert value:是否对Json路径表达式对应的值进行判断。

  Expected Value:期望值的内容,填写你的期望值。

  Json Path的更多详细用法参见:https://github.com/json-path/JsonPath

  响应断言

  响应断言的应用范围更广一些,只要返回的响应内容是文本内容,无论什么格式,HTML、Json等,响 应断言都可以判断 在HTTP请求上右键,添加响应断言。

1-6.jpg

  解释:

  测试字段:对哪部分数据进行判断,默认是响应内容。

  模式匹配规则:判断规则,默认是包含字符串。

  测试模式:具体判断的内容。


作者:Zicheng    

来源:http://www.51testing.com/html/70/n-7796470.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 1、引言这刚刚整理完公司内部技术分享的PPT,看看时间,又已经是凌晨…喝一杯美咖,提提神,反正都已经这个时间了,索性,就直接开始写博客吧。因为最近总是被某些大佬艾特,说我这2月份更新的博文不地道了…我也是哑巴吃黄连啊~~~因为最近在给一些同学讲解接口的事情,本以为 Cookie、Cache及Session这些知识,都是逢考必过的内容,然鹅,又是我想多了。为了能让我可以多想点,今天就分享这三点姿势!!2、Cache关于缓存,我看了网上的一些教程讲解,几个字概括:     太繁琐,太啰嗦,长篇大论为了能让大家更容易理解,小鱼我以文字+流程图的形式来分享。首先,针对接口...
            1 2 7056
            分享
          •   QQ、微信聊天框的主要功能就是发送消息和接收别人发过来的消息。  消息内容类型:  ·纯文字  · 纯图片  · 纯表情  · 文字+表情  · 文件  发送键:  · 点击“发送”发送  · 使用快捷键发送(针对电脑端)  用户在线状态:  · 在线状态  · 离线状态  网络情况:  · 网络正常  · 网络异常  群聊情况:  · @功能 :   @个人、@多个人、@全部  · 提醒功能     - 被@到时,进入群聊是否提示“有人@”  &nb...
            0 0 993
            分享
          •   饭圈文化是一种由热爱和支持自己喜欢的偶像所构成的文化。在这个文化中,粉丝们通常会通过多种方式来表达他们的爱意,例如关注偶像参与的综艺和电视剧,使用各种社交平台为偶像打榜投票,以争取让偶像获得更高的排名和更多的曝光。 为了能够投出更多的票数,一些粉丝会采用一些技巧来绕过平台的限制,例如使用代理IP,以便用不同的IP地址来重复投票。下面提供的一段代码使用Python和Selenium库编写,可以自动遍历HTML表格并找到“投票”链接进行单击,从而实现不同用户的自动化投票。如果有需要的小伙伴们可以参考一下。  1. 下载并安装Chrome浏览器。  2. 下载与您的Chrome浏览器版本相对应的...
            0 0 810
            分享
          • 最近正好有个项目,需要做一下支付相关接口测试,测试完成后脑海中浮现的一句话“实践是检验真理的唯一标准”,我们来看看有哪些问题大家借鉴可以避免的。一、接口测试前需要准备哪些接口测试工具:Postman测试网站地址:确保测试前网站服务起来,否则不可能验证成功接口文档:个人认为这是最重要的要素 ,一篇高质量文档能为你调试过程节约很多时间数据库:最好连接到后台数据库,有的时候需要校验页面显示是否正确,或者判断返回的内容是否正确,都可以查看数据库找到根源综上,这些工具互相之间是来回切换配合使用的,具体看大家需要完成什么操作,自己取材。二、测试过程中遇到的问题1. 类型一报错:101错误“System e...
            0 0 1147
            分享
          • 一、接口组成:请求+返回接口请求=请求的URL+请求头(User-Agent、Content-Type) +请求方法(GET/POST/PUT/DELEte)+请求参数(拼接在URL后面/请求的body中)二、接口测试关注点三、postman测试接口1、postman模拟接口请求:collections:存放单个测试接口动态变化部分引用变量:如,测试环境{{server_ip}}、{{token}}等2、测试环境env配置:配置环境路径,key-value方式,后面测试时直接使用该env,更换测试环境也只用调整value,或者保存多个环境信息,直接切换对应env即可3、postman加载外部数...
            0 0 1263
            分享
      • 51testing软件测试圈微信