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
消息体数据
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某些值
把值传递给某个变量
变量被关联到接口请求中,作为输入参数