天天看点

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服务接口​​为例

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

soap1.1举例:

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

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

soap1.2举例

没有SOAPAction

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

三. 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:数据库驱动类型——与自己的数据库类型要一致

用户名、密码

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

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

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

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

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

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

Parameter types:变量类型

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

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

query timeout:超时时间

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

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

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

四. 如何使用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某些值

  把值传递给某个变量