性能测试基础-jmeter03(soap、jdbc、dubbo各种协议脚本的编写)

一:做性能测试注意事项

      (1) 不要加断言

    (2)尽量不使用beanshell元件

    (3)运行方式:尽量使用非GUI形式

    (4)所有的监听器都要禁用,不要使用无线网

二:soap协议脚本(参考博主:https://www.cnblogs.com/stone9159/p/8078842.html

        soap协议本身就是http+xml协议,主要是将xml的协议的格式写在jmeter中的boby data中,soap请求的内容主要写在body data中,也会用到http请求头,主要用于存储Content-Type或则SOAPAction,目前看到的主要有需要SOAPAction和不需要SOAPAction的两种格式

情况一:Content-Type=text/xml;charset=UTF-8,这种需要SOAPAction值  (下图是通过soapui查看的结果)

  1.创建http请求

  

 2.添加http请求

  

情况二:Content-Type: application/soap+xml;charset=UTF-8;这种不需要SOAPAction,但是需要在body data 的header中加<wsa:Action>

 

 1.添加http头

2.添加http请求(红框处必须加,不加会报错,来自soapui请求的raw)

三:jdbc脚本编写

      1. 编写脚本之前的准备:

        (1)jdbc是java调用数据库的语言

        (2)通过这个数据可以直接执行sql脚本

        (3)需要引用对应的jar包,选择jar包的版本注意施行;jar包的版本一定要大于数据库的版本,数据库一般是5.7;jar包对应的地址是https://mvnrepository.com/search?q=connector

 也可以通过百度网盘获取:链接:https://pan.baidu.com/s/1hAwVTw-2Qv_dHsiR_SELEw 
提取码:1z12

     (4)将获取的jar包放在jmeter的lib文件夹中,然后进行重启jmeter,有了这个jar包有jdbc这个配置元件并且可以发送jdbc请求,如果没有这个jar包不可以发送jdbc请求

    2. 编写jdbc请求的脚本
        2.1 线程组先添加JDBC Connection Configuration

              

          (1)连接池一定要填写并且后面的jdbc的请求要跟这个保持一致

          (2)填写数据库的ip port dbname  user  password

          (3)database url针对不同的数据库类型格式有不用的写法

                  mysql写法:

                                jdbc:mysql://host[;port]/dbname

                                driverclass驱动:com.mysql.jdbc.Driver(只适用于mysql5的版本,mysql8的版本使用com.mysql.cj.jdbc.Driver;驱动那边选择编辑按钮手动输入这个)

                postgreSQL写法:

                               jdbc;postgresql:dbnamel

                               driverclass驱动:org.postgresql.Driver

      2.2 线程组添加jdbc request请求

             

         (1)连接池的名称一定要跟jdbc connection configuration中保持一致

         (2)jmeter中写sql可以不写分号,一个取样器只能写一个sql,写多个sql就使用多个取样器

         (3)query Type:select statument(select 查询语句)/update statusment(修改语句)/prepared select statumengt/prepared update statument(待参数的可以使用占位符?的查询语句)

        

 3. jdbc的一些场景应用

         3.1将jdbc查询的数据导出成csv文件或者txt文件

           (1) 新建一个线程组--添加jdbc connetion configuration--添加jdbc request请求

            (2)这个线程组添加监听器--保存到响应文件

              

          (3)这个时候到jmeter的bin目录下会找到txt的文件,就是sql的响应结果,但是这个响应结果循环次数不管设置了多少条,我每次去执行的时候都是覆盖的,所以如果需要得到一些不同的测试数据这个方法就不可行

               

      (4)mysql中查询到的数据,保存到响应文件可以直接保存位csv文件么??默认情况下,保存文件用\t进行列分割,所以保存文件,txt,xlsx,不能为csv,因为csv文件使用逗号进行分割的。

        3.2 将jdbc查询的数据导入到新建的sqlite中进行测试数据的叠加,请求需要这份测试数据直接从sqlite表中进行读取

        (1)使用sqlite数据的前置准备

                  sqlite是一个内存关系型数据库,不需要安装

        (2)下载sqlite  jar包,放在jmeter的lib文件夹下,下载的地址是:https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc/3.31.1或者网盘自取:https://pan.baidu.com/s/1hAwVTw-2Qv_dHsiR_SELEw 
提取码:1z12

        (3)需要重启jmeter

          (4) 新建一个jdbc connetion configuration 用来配置一些sqlite的一些配置信息、

           

       (5)创建一个jdbc request的请求

           先创建一个创建表的请求:

           

       再将mysql查询出来的数据写入到sqlite中,mysql查询出来的数据会有很多字段,将这个需要写入到sqlite表中的字段给提取出来可以添加一个取样器看这些mysql查询出来的数据

      

       

   这些数据写入到sqlite就需要使用循环控制器进行写入

   

因为mysql查询出来的提取的值的变量都是类似tokens_1,tokens_2.....这种格式的所以引用个技术器

再新建一个插入数据的jdbc  request的请求,至于占位符的数据使用V函数进行拼接

执行以后生成的test01_datafile.db,就可以使用navicat进行打开看是否数据已经写入   

四:dubbo脚本(websocket,mq,dubbo)

   1. websocket

         1.1基本概念

              是基于tcp的网络,是全双工协议,http只能是客户端向服务端发送请求,tcp:既可以是客户端向服务端发送请求,也可以是服务端向客户端发送请求

         1.2 jmeter中编写websocket脚本

              (1)准备工作:jmeter中要引入差劲,jmeter本身的取样器中不支持websocket协议

 插件管理:jmeter-plugins-manager-1.6.jar,放在jmter的lib\ext文件夹中,这个文件夹中放第三方开发的jar包https://jmeter-plugins.org/install/Install/;也可以通过网盘自取:https://pan.baidu.com/s/1hAwVTw-2Qv_dHsiR_SELEw 
提取码:1z12,

             (2)插件放置好以后需要重启jmeter在jmeter的菜单---选项--plugin manager 的入口,点击这个插件就会出现插件管理界面在available plugins中搜索websocket,勾选  websocket samplers by peter doornbosch,点击右下角apply changes and restart jmeter

          

    (3)安装完成以后取样器就多了一些选项:

            websocket close 关闭websocket

            websocket open connection 建立一个websocket

           websocket ping/pong 测试websocket协议

           websocket read sampler :客户端从服务器端口获取

            websocket write sampler :客户端向服务器端发请求(WebSocket Single Write Sampler
connect:user exist connection  使用已经建立连接
 setup new connection   新建一个连接
 Data:数据: text 文本    binary 二进制 request data)

            websocket request-response sampler:同时具备读写功能

   2.mq

          消息队列的总称,kfaka,rabaitmq,MQTT,队列是:先进先出;先发布然后订阅;jmeter中进行插件管理中下载MQ并下载安装,MQTT Protocol Support   如果下载失败,左边有红色, 再次点击  apply changes  and restat jmeter

   3. dubbo(https://www.cnblogs.com/shaohuang/p/17508060.html

        微服务框架:假设有三个server需要部署先要将这个部署信信,以及里面的一些方法放到zookeeper注册中心,这个注册信息中的数据会被monitor管理进行管控,当消费者需要某个方法的时候会去zookeeper中取放法需要先经过monitor进行管理看是否有这个空闲的放法,这个整个体系就是dubbo;zookeeper默认端口是:2181

      jmeter测试dubbo接口:下载dubbo插件并且放在lib/ext文件夹下面https://github.com/thubbo/jmeter-plugins-for-apache-dubbo/releases,新建一个dubbo的取样器

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值