Jmeter介绍&测试准备:
Jmeter介绍:Jmeter是软件行业里面比较常用的接口、性能测试工具,下面介绍下如何用Jmeter做接口测试以及如何用它连接MySQL数据库。
前期准备:测试前,需要安装好Jmeter以及jdk并配置好jdk环境变量。
Jmeter为免安装版本,下载后进行解压,双击bin目录下面的jmeter.bat文件即可启动jmeter .
 

启动jmeter之后,会看到左侧有一个“测试计划”,测试计划可以理解为一套测试环境,测试计划下面可以添加不同的线程组,相当于不同的测试套。线程组下面可以添加具体的测试用例脚本。
添加线程组的流程:右键点击测试计划->点击“添加”->点击Threads(Users)->点击线程组。
 

五种请求介绍:这里介绍get/post/带cookie/带Header/上传文件五种请求的测试。
  • get请求:get请求是最简单的请求方式,输入正确的域名地址或者IP地址 ,添加路径和请求方式,启动后即可。
    • 第一步:右键点击线程组->点击添加->点击Sampler->点击HTTP请求。

    • 第二步:右键点击线程组->点击添加->监听器->查看结果树。

    • 第三步:点击请求->输入ip地址或者域名->选择请求方式为GET->输入路径->点击启动按钮。
 

    • 第四步:点击查看结果树->查看执行结果

  • post请求:post请求跟get的区别除了请求方式不同之外,还需要添加请求体,请求体内容多半为json格式。
    • 第一步:右键点击线程组->点击添加->点击Sampler->点击HTTP请求——同get请求
    • 第二步:右键点击线程组->点击添加->监听器->查看结果树。——已添加的话,这步可以省略。
    • 第三步:点击请求->输入ip地址或者域名->选择请求方式为POST->输入路径->输入请求参数->点击启动按钮。
    • 第四步:点击查看结果树->查看执行结果——同get请求
  • 带cookie的请求:该请求需要添加HTTP Cookie管理器。
    • 第一步:右键点击线程组->点击添加->点击Sampler->点击HTTP请求——同get请求
    • 第二步:右键点击线程组->点击添加->监听器->查看结果树。——已添加的话,这步可以省略。
    • 第三步:右键点击线程组->点击添加->配置元件->HTTP Cookie管理器->点击Cookie管理器添加Cookie值。
 

    • 第四步:点击请求->输入ip地址或者域名->选择请求方式为POST->输入路径->输入请求参数->点击启动按钮。——同POST请求
 

    • 第五步:点击查看结果树->查看执行结果——同get请求
  • 带Header的请求:该请求需要添加HTTP信息头管理器。
    • 第一步:右键点击线程组->点击添加->点击Sampler->点击HTTP请求——同get请求
    • 第二步:右键点击线程组->点击添加->监听器->查看结果树。——已添加的话,这步可以省略。
    • 第三步:右键点击线程组->点击添加->配置元件-HTTP信息头管理器->填写信息头内容
 

    • 第四步:点击请求->输入ip地址或者域名->选择请求方式为GET->输入路径->点击启动按钮。——同GET请求
 

    • 第五步:点击查看结果树->查看执行结果——同get请求
  • 文件上传的请求:需填写上传文件的路径。
    • 第一步:右键点击线程组->点击添加->点击Sampler->点击HTTP请求——同get请求
    • 第二步:右键点击线程组->点击添加->监听器->查看结果树。——已添加的话,这步可以省略。
    • 第四步:点击请求->输入ip地址或者域名->选择请求方式为POST->输入路径->点击Files Upload->点击添加按钮->点击浏览->点击本地文件->输入参数名称->输入MIME类型->点击启动按钮。

    • 第五步:点击查看结果树->查看执行结果——同get请求
 
其他功能介绍:
 
参数化:所谓参数化就是我们可以将需要传入的参数写到某个配置文件中,配置好参数 ,即可使用配置文件内的参数。
  • 第一步:添加配置元件->CSV Data Set Config

  • 第二步:本地新建一个user.txt的配置文件,输入用户名,密码,逗号隔开,将文件放到Jmeter安装路径的/bin目录下。

  • 第三步:点击CSV Data Set Config,配置变量,输入文件名称,定义参数名称,逗号隔开。

  • 第四步:新建请求,步骤同上面的post请求。点击请求名称->输入域名->选择请求方式->输入路径->名称地方输入变量名->值的地方输入在CSV Data Set Config里面配置的变量名->点击启动按钮->查看结果树。
 

函数助手:Jmeter具备一个函数助手的功能,里面集成了常见函数的使用,这里介绍下随机函数Random和时间函数time的使用。
  • 函数助手__Random:点击菜单栏的选项->函数助手对话框->选择一个功能__Random->输入范围的最小值&最大值->点击“生成”按钮->将生成的函数变量带入到请求内。
 

  • 函数助手__time:选项->函数助手对话框->选择一个功能__time->输入时间格式->点击“生成”按钮->将生成的函数变量带入到请求内。
 

 
关联:所谓关联就是让不同的请求之间的参数形成关联关系,比如说将上一个请求的出参,当作下个请求的入参,该方法可以让多个脚本都串连起来,从而达到连跑的效果。
  • 新建请求->右键点击请求添加后置处理器->JSON Extractor

  • 点击JSON Extractor->输入变量名称->输入json表达式(json的层级关系用.点号来区分)
 

  • 新建新请求->传入变量值(传入上一个请求提取的参数),这样就将两个请求的参数关联起来了。
 

 
添加断言(响应断言):判断一个请求是否成功,除了校验返回码,有时候还要校验返回体的内容是否正确,jmeter可以添加断言来检查结果。
  • 右键点击请求->添加->断言->响应断言

  • 点击响应断言->选择测试的响应字段->选择匹配规格->添加匹配的字段
 

 
Jmeter操作数据库:jmeter还可以通过调用jdbc接口对数据库进行远程操作,这里以mysql为例。
  前期准备:需准备好mysql的jdbc驱动包:mysql-connector-java-5.1.7-bin.jar。
  驱动包下载地址:https://dev.mysql.com/downloads/connector/j/
  • 添加驱动包:点击测试计划->点击“浏览”->添加本地驱动包

  • 添加线程组:右键点击测试计划->点击“添加”->点击Threads(Users)->点击线程组->修改线程组名称为“操作数据库”
  • 添加JDBC连接配置:右键点击线程组->添加->配置元件->JDBC Connection Configration

  • 配置JDBC连接参数:定义变量名->输入DatabaseURL->JDBC驱动类->数据库用户名->数据库用户密码。
    • URL:jdbc:mysql://${host+port}/${database_name}?allowMultiQueries=true&characterEncoding=utf-8(host、port、database_name换成对应的值),allowMultiQueries=true是允许多次查询,characterEncoding=utf-8是为了防止中文乱码的情况。
    • JDBC驱动类:com.mysql.jdbc.Driver(固定)
    • Username:数据库的用户名
    • Password:数据库用户密码

  • 添加JDBC请求:右键点击线程组->添加->Sampler->JDBC Request

  • 配置请求:点击JDBC请求->输入配置的变量名->选择查询类型(Callable代表支持所有的sql语句)->输入数据库语句。

  • 添加查看结果树->启动->查看执行结果(返回结果为绿色代表执行成功)。
 

Jmeter使用常见问题:
  • jmeter jdbc 中文乱码:连接池url后面添加characterEncoding=utf-8

  • 接口返回体内容有乱码情况:
    • 进入jmeter的/bin目录,打开jmeter.properties
    • 找到"#sampleresult.default.encoding=ISO-8859-1"
    • 去掉#,将ISO-8859-1修改成utf-8
    • 重启jmeter

  • win10系统上传文件接口报错的问题:将需要上传的文件直接放到jmeter安装目录的/bin目录下。

如何用Jmeter做接口测试的更多相关文章

  1. 怎样用JMeter做接口测试?

    本文介绍JMeter如何做web service测试,一般来说web服务,一般指的是HTTP请求相关的内容.这里就介绍一下如何利用JMeter做基于HTTP的web接口测试.接口也叫API(Appli ...

  2. jmeter做接口测试

    jmeter做接口测试有两种方式: 1. 2.

  3. 使用jmeter做接口测试----柠檬不萌!

    一.乱码解决方案 1.jmeter查看结果树乱码 (1)在jmeter的bin目录下找到jmeter.properties这个文件,添加上 sampleresult.default.encoding= ...

  4. 使用Jmeter做接口测试(学生信息的6个接口)

    使用Jmeter做接口测试,案例中涉及到接口有:获取学生信息.登录.添加学生信息.学生金币充值.获取所有学生信息.文件上传. 一.获取学生信息(get请求) 服务器名称或IP:输入被请求服务器的名称或 ...

  5. 利用Jmeter做接口测试

    本文作者:大道测试团队-孙云 1.在安装jmeter之前先配置好JDK,再配置jmeter环境变量. 2.启动jmeter 启动jmeter: 双击Jmeter解压路径(apache-jmeter-3 ...

  6. 转:Linux下用Jmeter做接口测试

    本地设计 首先在本地设计 Apache JMeter 测试计划,大家可以参考<接口测试之 JMeter 初探> ,这里不再重复. 服务器配置 确保服务器已经安装了JDK和Python. 在 ...

  7. 如何用Postman做接口测试

    postman介绍&测试准备: postman介绍:postman是一个开源的接口测试工具,无论是做单个接口的测试还是整套测试脚本的拨测都非常方便. 前期准备:测试前,需要安装好postman ...

  8. 使用jmeter做接口测试

    1.启动jmeter. 我们可以找到Jmeter/bin 目录下的jmeter-server这个脚本,运行即可. 在下图打开的Jmeter 页面中,右键“测试计划” -> “添加” -> ...

  9. 利用Jmeter做接口测试的时候,如何提取头部的JSESSIONID然后传递到下一个请求,继续完成当前用户的请求。

    其实,关于这个问题有三种种解决方法: 1)从响应数据里面提取JSESSIONID,点击链接可以查看https://www.cnblogs.com/liulinghua90/p/5320290.html ...

随机推荐

  1. python接口自动化--Excel

    1.操作步骤: (1)安装python官方Excel库-->xlrd (2)获取Excel文件位置并读取 (3)读取sheet (4)读取指定rows和cols内容 2.示例代码 # -*- c ...

  2. Error: Cannot find module 'less'

    这是webpack.config 代码中引入 报错信息(在main.js中引入也是这个报错 解决办法: 安装less: npm install less --save-dev 转自: https:// ...

  3. PHP提高SESSION响应速度的方法有哪些

    1.设置多级目录存储SESSION 默认session的存储目录是1级目录,如果用户量比较大,session文件数量就比较大,我们可以设置目录数为2,使用2级目录可以提交查找和存取速度.不过这种方式对 ...

  4. 父组件向子组件传值时,值已经传过来却没有触发子组件的watch监听,解决~

    需求: 父组件像封装的子组件传值  (父组件属性传值,子组件props接受)   子组件接受后经过处理回显页面; 预想:子组件接受值 , 经过watch监听,在监听中处理数据,回显数据; 问题:子组件 ...

  5. 跑健壮性Monkey,出现一次Crash全过程-日志分析-Dotest董浩

    最近带着学生做的某个项目,跑健壮性Monkey,出现一次Crash全过程-日志分析: 准备:搭建adb环境.安装实际测试包:开始: Monkey命令: adb shell monkey -p com. ...

  6. Java并发之synchronized关键字和Lock接口

    欢迎点赞阅读,一同学习交流,有疑问请留言 . GitHub上也有开源 JavaHouse,欢迎star 引用 当开发过程中,我们遇到并发问题.怎么解决? 一种解决方式,简单粗暴:上锁.将千军万马都给拦 ...

  7. Go语言冒泡、选择、插入、快速排序实战浅析

    Hello,各位小伙伴大家好,我是小栈君,今天为大家带来的分享是关于go语言中的排序实战浅析. 我们就实际操作关于go的冒泡排序.选择排序.插入排序和快速排序四种方式的理论和实战进行分享,希望能够为大 ...

  8. 安装nvm管理多版本nodejs

    1.简介(什么是nvm) Node Version Manager(node版本管理器),用它在机器上安装并维护管理多个Node的版本 2.nvm临时切换(临时切换版本,只在当前终端内有效,新开终端无 ...

  9. 十、Spring boot 简单优雅的整合 Swagger2

    前言 swagger2 是什么,我这里就不说了,就是一个简单的接口文档,方便前后端联调. 其实之前没有想要到要使用swagger 的.因为我之前用的是YAPI ,不过这个是一个单独的工具.并且是开源的 ...

  10. SpringBoot 发送邮件功能实现

    背景 有个小伙伴问我你以前发邮件功能怎么弄的.然后我就给他找了个demo,正好在此也写一下,分享给大家. 理清痛点 发送邮件,大家可以想一下,坑的地方在哪? 我觉得是三个吧. 第一:邮件白名单问题. ...