Jmeter是apacheg公司基于Java开发的一款开源的压力测试工具,安装Jmeter之前先安装Jdk,具体JDK安装和环境变量配置自行百度。这里不概述。

1.添加线程组

测试计划->添加->Threads->线程组

线程组相当于有多个用户,同时去执行相同的一批次任务。每个线程之间都是隔离的,互不影响的。一个线程的执行过程中,操作的变量,不会影响其他线程的变量值

2.添加HTTP请求

线程组->添加->Sampler->HTTP请求

3.获取所有学生接口

接口文档描述如下:

简要描述:

  • 获取学生信息接口

请求URL:

  • http://api.nnzhp.cn/api/user/stu_info

请求方式:

  • GET

请求参数:

添加察看结构树查看程序响应数据,线程组->添加->监听器->察看结果树,如下图:

3.1  Jmeter察看结果树中乱码:

(1)在jmeter的bin目录下找到jmeter.properties这个文件添加:sampleresult.default.encoding=utf-8

(2)重启jmeter

Jmeter body data里面有乱码怎么解决

(1)在jmeter的bin目录下找到jmeter.properties这个文件添加:jsyntaxtextarea.font.family=Hack

(2)重启jmeter

3.2 Jmeter参数化

  所有的接口测试的访问域名和端口都一样时,一旦服务器地址变更,修改每个接口的IP或域名很费事的。我们可以将其参数化,方便操作

(1)用户定义的变量

  定义变量,填写正确的值,通过名称调用,调用格式为${IP},IP也可以通过HTTP请求默认值设置

  

(2)选项-函数助手对话框中的函数

  • __Random(随机数):random设置取值范围,填写值后,点击生成,调用时直接复制函数字符串即可,随机取值。
  • __counter(自增):counter设置起始值无效,设置结束值无效,默认就是从1开始,只能通过线程数控制执行次数,填写值后,点击生成,调用时直接复制函数字符串即可!
  • __time(时间):时间戳${_time(,)},时间戳表示从计算机发明那一天到现在过了多少秒,去掉后三位,再用转化器转化到现在的时分秒。
  • 使用当时时间${__time(YYYYMMdd-HH:mm:ss,)}

  

(3)从文件中读取参数:

  首先,点击线程组->添加->配置原件->CSV Data Set Config

  

  第二步,准备文件,设置参数化变量名称,文件路径等。读取文件中的数据时,使用数据对应的变量名,格式为${studi},${gold}

             

3.3 关联

  Jmeter中,用jp@gc-JSON PATH Extrator插件,可以获取上个接口的响应数据,用在第二个接口中。

  举例:如何从JSON响应结果中获取登录接口的Sign值,Json中的数据整体是一个字典,字典dict嵌套list,list又嵌套字典dict.

  按下标法取值,login_info是字典的第二个元素即dict.login_info.sign/dict["login_info"]["sign"]

  

  

3.4上传文件

  

Jmeter接口测试之案例实战的更多相关文章

  1. Jmeter接口测试之案例实战(十一)

    在前面的知识体系中详细的介绍了Jmeter测试工具在接口自动化测试中的基础知识,那么今天更新的文章主要是对昨晚的上课内容做个总结. 首先来看Jmeter测试工具在图片上传中的案例应用.首先结合互联网产 ...

  2. Jmeter4.0接口测试之案例实战(七)

    在前面的知识体系中介绍了Jmeter的基本应用,下来通过具体的案例来看Jmeter在接口测试中的具体案例实战部分. HTTP是基于应用层的协议,底层的网络传输层它不需要去关心,同时它是一个无状态的协议 ...

  3. Jmeter接口测试之参数传递(十三)

    在接口自动化测试中,经常会遇到的一种场景就是参数的场景,比如在用户列表中获取所有的用户列表,然后获取到某一个用户的ID,查看该用户的详细信息.首先在这里理清思路,它的流程是,首先获取到数据,然后在Jm ...

  4. Jmeter接口测试之参数化(十)

    在接口测试中,某些时候一些场景会使用到参数化的场景,参数化简单的说就是同一个请求需要不同的数据,比如在性能测试中需要并发多个用户的场景,这样的目的是为了模拟真实的用户场景,需要模拟不同的账号,这里就需 ...

  5. Jmeter接口测试之用户自定义变量(九)

    在使用Jmeter做接口自动化测试中,经常会使用到公共的数据,那么就需要对这些公共的数据分离出来,不管是基于测试框架的思想,还是使用工具来进行做自动化测试,公共数据的分离首先是需要思考的.这里就以获取 ...

  6. Jmeter接口测试之用例数据分离

    之前我们的用例数据都是配置在 Jmeter Http 请求中,每次需要增加,修改用例都需要打开 jmeter 重新编辑,当用例越来越多的时候,用例维护起来就越来越麻烦,有没有好的方法来解决这种情况呢? ...

  7. Jmeter4.0接口测试之断言实战(六)

    在接口测试用例中得有断言,没有断言的接口用例是无效的,一个接口的断言有三个层面,一个是HTTP状态码的断言,另外一个是业务状态码的断言,最后是某一接口请求后服务端响应数据的断言.在Jmeter中增加断 ...

  8. jmeter接口测试之登录测试

    注册登录_登陆接口文档 1.登录 请求地址: POST   xxxxxx/Home/Login 请求参数: args={ LoginName:"mtest", // 登录名,可以为 ...

  9. Jmeter接口测试之Get请求

    [一] 在测试计划下面添加一个线程组---------->在线程组下面分别添加HTTP请求.响应断言.BeanShellPreProcessor.察看结果树.聚合报告等内容. [二] 将使用的协 ...

随机推荐

  1. CodeForces - 862B Mahmoud and Ehab and the bipartiteness(二分图染色)

    题意:给定一个n个点的树,该树同时也是一个二分图,问最多能添加多少条边,使添加后的图也是一个二分图. 分析: 1.通过二分图染色,将树中所有节点分成两个集合,大小分别为cnt1和cnt2. 2.两个集 ...

  2. 如何禁用AD OU 下面的邮箱用户的Exchange ActiveSync 和 适用于设备的OWA

    Get-Mailbox -OrganizationalUnit QQ禁用名单 | Set-CASMailbox  -ActiveSyncEnabled $false -OWAforDevicesEna ...

  3. 使用Kickstart+pxe自动化安装部署无人值守的linux服务器

    Kickstart+pxe Kickstart无人职守安装RHEL5过程分享(详细图解版) 启动应用有:httpd.dhcpd.named.xinetd 无人职守自动批量安装linux系统超详细 参考 ...

  4. jQuery原理系列-Dom Ready

    ready事件是jquery的一个很重要的功能,在很久很久以前,我们是使用window.onload监听页面加载成功的,onload事件的好处是你不用考虑浏览器兼容性,也不需要依赖任何框架就可以写,但 ...

  5. git 在企业里的基本操作

    拖下来码云上的代码: git add . 若把单个文件加入到暂存区,则用git add 某文件 若把所有文件加入到暂存区,则使用git add . git commit -m"提交" ...

  6. C#路径2

    String apppath = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase; //获取整个文件路径名ap ...

  7. 操作系统类型&操作系统结构&现代操作系统基本特征

    五大类型操作系统 (1). 批处理操作系统 用户脱机使用计算机 用户提交作业之后直到获得结果之前就不再和计算机打交道. 作业提交的方式可以是直接交给计算中心的管理操作员,也可以是通过远程通讯线路提交. ...

  8. 吴裕雄--天生自然C++语言学习笔记:C++ 循环

    有的时候,可能需要多次执行同一块代码.一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推. 编程语言提供了允许更为复杂的执行路径的多种控制结构. 循环语句允许我们多次执 ...

  9. C++编程学习(三)运算符

    一.运算符 1.求余运算双方必须是整数. 2.编程时一定要注意运算符的优先级!!!例如: int a=5,b=6,c=6,k; 3>4 //结果为假 a<b //结果为真 k= b!=c ...

  10. PWC6199:Generated servlet error:Only a type can be imported. org.apache.jasper.tagplugins.jstl.core.ForEach resolves to a package

    <%@ import="org.apache.jasper.tagplugins.jstl.core.ForEach"%> 去掉这条语句,就不报错了.所以问题就出在这里 ...