• jmeter脚本开发:SOAP接口和JDBC(四)


    一. 什么是soap接口

    webservice是一个web的应用程序,使用xml向外界暴露可供调用的API接口

    webservice的接口标准

    SOAP(Simple Object Access Protocol)  版本 1.1  1.2

    UDDI(UnviversalDescription Discovery and Integration)

    WSDL(Web Service Description Language),描述语言,基于xml

    soap是基于XML的简易协议,可使应用程序在HTTP之上进行信息交换

    XML本身是一种用于传输和存储数据的一种文本文件

    soap可以理解为:http + xml

    二. jmeter调用soap接口

    jmeter5 版本,没有soap协议取样器

    方法1:常规做法(使用http取样器 + xml数据)

    http取样器:消息头管理器

    jmeter5 调用 soap 1.1版本接口

    消息头管理器:Content-Type  SOAPAction

    消息体数据

    获取天气预报web服务接口为例

     

    soap1.1举例:

    SOAPAction表示真正调用的接口,soap1.1必须添加

    soap1.2举例

    没有SOAPAction

     

     

    三. jdbc脚本制作

    1. JDBC(Java Data Base Connectivity)

    是一种用于执行SQL语句的JAVA API

    通过这个api可以直接执行sql脚本

    2. jemter如何使用jdbc发送sql?

    (1). 对应数据库的jar包(驱动包)

    mysql-connector-java.***jar    数据库类型对应的jar包,放到jmeter的lib目录下

    (2). 配置数据库连接信息 JDBC Connection Configuration

    配置元件Config Element > 数据库连接配置 JDBC Connection Configuration

    注意:这个一般放在setup线程组下

    3. 数据库连接配置信息(JDBC Connection Configuration)

    Variable Name for created pool   连接池名称

    连接池:分配、管理、释放数据库连接

    Database Connection Configuration

    DatabaseURL:jdbc:mysql://数据库ip:端口/数据库名  可以加上?useUnicode=true&characterEncoding=utf-8   字符编码

    JDBC Driver class:数据库驱动类型——与自己的数据库类型要一致

    用户名、密码

    (3) 添加数据库请求取样器 JDBC Request

    线程组 > 添加取样器 > JDBC Request

    Variable Name of Pool   配置信息中填写的连接池名称

    SQL Query   条件值是变量是,用?占位

    Parameter values:变量值,多个用逗号分隔

    Parameter types:变量类型

    Variable names:取查询结果列的别名,多个用逗号 , 跳过列用空

    Result Variable name:变量存储所有的返回值

    query timeout:超时时间

     

     

     

     

     

     

     

     

    当查询语句参数是动态的时候,不能使用Select Statement,而要是有Prepared Select Statement,同理,Prepared Update Statement也是这样

     

     

    四. 如何使用jdbc批量造数据

    思路:循环执行insert脚本

    Query type:update statement

    sql:insert into table_name(column_name) values (valus)

    insert into member(RegName, Pwd, MobilePhone, Type, LeaveAmount, RegTime) values('小蜜蜂', '${__uppercase(${__MD5(123456,)},)}', ${__Random(13700000000,
    13799999999,)}, 1, 0, now())

    注意:密码md5大写加密,必须使用引号引起来,否则会报错Unknown column 'e10adc3949ba59abbe56e057f20f883e' in 'field list'

    线程组:多线程,持续循环

    设置100个线程,运行,查看数据库是否插入100条数据

    如何插入的数据不一样?

    参数化 + 关联

    五. 如何使用jdbc关联接口测试

    接口中动态变化参数值来源?函数、CSV文件、上一个接口返回值、数据库

    数据库思路:

      从数据库中select某些值

      把值传递给某个变量

      变量被关联到接口请求中,作为输入参数

  • 相关阅读:
    待测试
    js中substring和substr的用法
    JavaScript lastIndexOf() 方法
    CSS3 :nth-child() 选择器
    jQuery :has() 选择器
    jquery tr:even,tr:eq(),tr:nth-child()区别
    JS模块化工具requirejs教程(二):基本知识
    JS模块化工具requirejs教程(一):初识requirejs
    HTML基础js操作
    HTML基础dom操作
  • 原文地址:https://www.cnblogs.com/my_captain/p/11715494.html
Copyright © 2020-2023  润新知