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. mysql基础之约束

    约束的目的: 1.约束保证数据的完整性和一致性. 2.约束分为表级约束 和 列级 约束.(针对约束字段的数目的多少来确定的) 3.约束类型包括 not null (非空约束) primary key( ...

  2. React-Hook

    import React, { useState } from 'react'; // Hook 写法 function App2 () { const [count,setCount] = useS ...

  3. PHP-会话控制Cookie和Session

    会话控制:就是为了我们在访问页面和页面之间的跳转是,能够识别到你的登录状态,已经你的登录时长等 在php的会话控制当中,涉及到两个概念Cookie和Session Cookie 会话控制 原理:在登录 ...

  4. Linux考题(一)

    1.创建目录/data/oldboy,并且在该目录下创建oldboy.txt,然后在文件oldybos.txt里写入内容“inet addr:192.168.228.128  Bcast:192.16 ...

  5. CSV数据存取

    CSV数据的读取十分地简单 分为两部分 读 读取csv文件可以使用csv模块下的reader(f)以及DictReader(f) mport csv with open("text.csv& ...

  6. 一篇文章搞定Python多进程(全)

    1.Python多进程模块 Python中的多进程是通过multiprocessing包来实现的,和多线程的threading.Thread差不多,它可以利用multiprocessing.Proce ...

  7. 2019-9-9:渗透测试,基础学习,phpmyadmin getshell方法,基于时间的盲注,基于报错的注入,笔记

    phpmyadmin getshell方法1,查看是否有导入导出设置 show global variables like '%secure-file-priv%';2,如果secure-file-p ...

  8. 基于xtrabackup实现mysql备份还原

    简介 Xtrabackup2.2版之前包括4个可执行文件: innobackupex: Perl 脚本 xtrabackup: C/C++ 编译的二进制 xbstream: 支持并发写的流文件格式 x ...

  9. Dubbo面试八连问,这些你都能答上来吗?

    Dubbo是什么? Dubbo能做什么? Dubbo内置了哪几种服务容器? Dubbo 核心的配置有哪些? Dubbo有哪几种集群容错方案,默认是哪种? Dubbo有哪几种负载均衡策略,默认是哪种? ...

  10. scikit-learn文本特征提取之TF-IDF

    TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与文本挖掘的常用加权技术. TF-IDF是一种统计方法,用以评估一字词对于一个文件集 ...