• Jmeter接口测试——使用教程(下)


    前言

    上一篇我给大家讲了jmeter的基本介绍跟参数化和jmeter脚本及jmeter断言,今天让我们继续往下看,学习一下jmeter新的知识点。

    一、Jmeter关联

    我们知道断言是从返回结果中检查有没有预期的值,现在有一个问题,有一个购买商品的接口,必须要先登录才能够购买商品, 那么你调用接口的时候怎么知道是否已经登录了,一般这样的都会在调用的时候传一个token的参数,服务端判断token是否过期或者token是否正确,如果正确的话,那就是登录成功了就可以买东西了。

    那么这样的话,你就要先获取到token,token是从呢来的呢,肯定是从登录接口返回的,因为要先登录嘛,那这样就得先调用登录接口, 获取到token,然后把获取到的token传给购买商品的这个接口。

    关联就是做这个事的,它就是获取到返回的值,然后保存起来,给别的请求使用,或者做一些其他的处理。

    =====Jmeter中的关联是通过正则表达式提取器来完成的。

    =====

    通过上面的关联就可以把返回中我们想要的值抓到了,给其他请求使用的时候,直接使用${name}即可,name就是你关联的时候设置的变量名。

    二、Jmeter操作mysql

    1、Jmeter操作mysql步骤:

    1)、导入jdbc的jar包,因为jmeter本身不能直接连接mysql,所以需要导入第三方的jar包,来连接mysql

    2)、创建数据库连接配置,mysql的url、端口号、账号、密码

    3)、写sql,执行sql

    4)、查看结果

    2、Jmeter数据库驱动列表

    数据库

    驱动

    数据库url

    mysql

    com.mysql.jdbc.Driver

    jdbc:mysql://host:port/{dbname}?allowMultiQueries=true

    oracle

    org.postgresql.Driver

    jdbc:postgresql:{dbname}

    PostgreSQL

    oracle.jdbc.driver.OracleDriver

    jdbc:oracle:thin:user/pass@//host:port/service

    MSSQL

    com.microsoft.sqlserver.jdbc.SQLServerDriver

    或者

    net.sourceforge.jtds.jdbc.Driver

    jdbc:sqlserver://IP:1433;databaseName=DBname

    或者

    jdbc:jtds:sqlserver://localhost:1433/"+"library"

    3、Jmeter配置mysql连接

    1)、添加一个JDBC Connection Configuration

    2)、配置mysql连接池的名称,后面发sql请求的时候指定连接哪里

    3)、数据库的url:jdbc:mysql://192.168.1.116:3307/bugfree?

    allowMultiQueries=true

    4)、数据库驱动:这里就是指定连接什么类型的数据库,mysql、oracle、SqlServer等等

    5)、账号密码

    三、Jmeter操作mongodb

    1、Jmeter操作mongodb步骤:

    1)、添加一个MongoDB Source Config,配置mongodb连接信息,指定ip和数据源

    2)、添加一个mongodb的请求脚本,指定数据源

    3)、写查询语句

    4)、查看结果

    2、Mongodb操作语句

    show dbs;查看所有数据库

    use db;选择一个数据库

    show collections;查看所有集合,也就是表

    db.collection.find();#查询所有数据

    db.collection.find({"name":"mongodb"});#查询指定的条件

    db.collection.insert({"name":"mongodb","age":18});#插入数据

    db.collection.update({“name”:“mongodb”},{$set:{“createtime”:“20150810”}});#更新数据

    db.besttest.remove({“name”:“mongodb”});#删除指定数据

    四、Jmeter压力测试

    做压力测试也就是多少用户一起去操作,也就是设置多少并发,运行多久。

    1、压力测试场景设置

    一般我们在做压力测试的时候,分单场景和混合场景,单场景也就是咱们压测单个接口的时候,多场景也就是有业务流程的情况下,比如说一个购物流程,那么这样的场景就是混合场景,就是有多个接口一起来做操作。

    1)、单场景,一个请求就可以了

    2)、混合场景,多个请求

    3)、压测时间,一般场景都是运行10-15分钟,如果是做疲劳测试的话,可以压一天或者一周,根据具体的情况来定

    2、压力测试数据准备

    在做压测的时候,数据量少和数据量大的情况下,测试的结果是不一样的,所以,我们在设计场景的时候是要考虑到这种情况的,要测试数据库中数据量大和数据量小的情况,如果是要测试数据量大的情况下,就要造数据了,造数据可以使用jmeter,操作数据库来造数据,也可以使用python连接数据库,批量的造数据。

    3、压力测试结果查看

    查看结果关注的几个指标

    1)、tps是每秒钟处理的请求数,也就是指服务器的处理能力,tps越高说明服务器处理能力越好

    2)、响应时间,也就是每个请求的处理时间

    3)、并发用户数  也就是多少并发

    五、Linux下运行jmeter压力测试

    我们在做测试的时候,有时候要运行很久,公司用的测试服务器一般都是linux,就可以运行在linux下面,linux下面不能像windows一样有图形化界面,那怎么运行脚本呢,就先在windows上把脚本做好,然后在linux下运行即可,linux下运行jmeter是在jmeter的bin目录下的jmeter.sh这个shell脚本。

    sh jmeter.sh -n –t a.jmx -l res.jtl

    -n         代表以没有图形化界面启动

    -t          代表后面是测试脚本

    a.jmx     也就是我们做好的jmeter脚本

    -l           代表测试结果

    res.jtl     就是测试结果文件

    查看结果的话,在查看结果树视图中导入这个res.jtl就可以查看到测试结果了

    Jmeter添加负载机

    我们在压测的时候,可能并发比较大, 一台机子已经启动不了那么多并发了,这个时候我们就要使用多台机子一起来发压力,就要添加压力机,添加压力机怎么添加呢,首先要在做压力机的机子上启动jmeter的代理,然后做为控制机的机子上添加上压力机的ip即可。

    1)、Jmeter的bin目录下有一个jmeter-server,启动它即可,windows机子作为压力机的话,运行jmeter-sever.bat,linux作为压力机的话,运行jmeter-server

    2)、然后在作为控制机的jmeter配置文件里添加压力机ip即可,jmeter的配置文件在bin目录下jmeter.properties,添加压力机的时候,在配置文件里面找到remote_hosts添加ip,然后重启jmeter就可以看到远程压力机了后重启jmeter就可

    3)、在配置文件里面添加之后,重启jmeter,在运行的时候,就可以看到压力机的ip了,可以选择他来运行这个脚本,全部运行的话,也就是所有压力机上的全部都启动,就选择远程全部启动,就所有的压力机就都运行了。

    结语

    这篇贴子到这里就结束了,最后,希望看这篇帖子的朋友能够有所收获。

    如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

    以下是对学习jmeter接口测试的朋友的一些视频教程,有需要的可以斯我【jmeter】免费获取

  • 相关阅读:
    来阿里一年后我迎来了第一次工作变动....
    [Android显示学习]RenderThread渲染
    k8s客户端fabric8基本使用
    C++常用标准算法
    CentOS 中启动 Jar 包
    (二)大白话InnoDB存储引擎的架构设计
    【可视化大屏设计学习1】正式开始建设可视化平台了,学习路径写下来!大家一起沟通呀!~
    linux三剑客(grep、sed、awk)基本使用
    安卓APP(2)——安卓的工程目录文件夹介绍和安卓APP启动过程
    网络编程_fd_set结构
  • 原文地址:https://blog.csdn.net/weixin_67553250/article/details/126781259