0
点赞
收藏
分享

微信扫一扫

2.2使用JDBC Request TestStep创建并检查数据

2.2使用JDBCRequest TestStep创建并检查数据

         如果你想有一个接入并检查外部基础SQL数据的快捷方式,JDBC Request TestStep是一个很好的开始。JDBC Request TestStep专业版本添加了容易使用功能,这个功能对于没有技术的用户是非常有用的,但是这个功能不是必需,如果对SQL有合理的把握,不怕输入JDBC连接字符串(URL)。在这里使用开源版本帮助我们更好理解。

2.2.1 准备阶段

         该部分使用的实例,是连接MySQL数据库,但是任何JDBC数据源都可以工作,尽管SQL语法可能会有所不同。为了能够使用JDBC Request TestStep,需要做如下事:

    n  数据库或者连接数据库:如果没有安装MySQL,这时可以下载最新版本,下载的链接:​​http://dev.mysql.com/downloads/mysql/​​。每个平台的安装说明都有提供。

    n  JDBC驱动:如果已经下载好它,就不需要下载MySql驱动,这个给出MySQL下载链接:​​http://dev.mysql.com/downloads/connector/j/​​。你将会需要驱动类名,对于MySQL而言,它的名是:com.mysql.jdbc.Driver。

    n  JDBC连接字符串(URL):JDBC连接字符串在谷歌上是非常容易找到的。MySQL连接字符串URL的样例:jdbc:mysql://<hostname>:<port>/<dbname>?user=<username>&password=<password>

    TIPS:专业版本配置:专业版的SoapUI简化了前两个要求。你仍然需要添加JDBC驱动的URL,但是配置(Configuration)部分提供一个驱动类的选择以及连接字符串需要使用的参数。

    如果遇到连接的问题,不要忘记检查RequestLog Tab下JDBC Request TestStep的Assertions(断言)。有时它能提供额外的调试信息,例如JDBC错误。

2.2.2 操作步骤

         开始创建一个空的项目,TestSuite和TestStep。这时,添加MySQLJDBC驱动并配置JDBC Request TestStep连接到MySQL数据库。最后,创建一个MySQL测试表、给表中插入数据,使用JDBC Request TestStep来查询测试数据并使用断言(Assertion)检查查询的值。执行步骤如下:

1. 首先,需要创建一个SoapUI项目。该项目没有类型要求;创建一个新的且带有TestSuite、TestCase、JDBC Request TestStep的通用项目:

2.2使用JDBC Request TestStep创建并检查数据_MySQL


2.  假设已经安装MySQL,添加MySQL JDBC connector JAR到SoapUI安装路径下的: bin/ext目录中,本例使用的:mysql-connector-java-5.1.45-bin.jar,重新启动SoapUI:

    2.2使用JDBC Request TestStep创建并检查数据_SoapUI_02


3.当重新启动,在如下窗口填入相关信息,操作截图如下:

        2.2使用JDBC Request TestStep创建并检查数据_SoapUI数据驱动测试操作实例_03

        上述操作截图是SoapUI Pro,如果是开源的输入相关信息如下:

        n  Driver(class name): com.mysql.jdbc.Driver

        n  Connection String:jdbc:mysql://127.0.0.1:3306/test?user=root&password=root

        n  点击测试连接,你将看到包含“TheConnection Successfully Tested”的弹出窗口


4.创建一个测试表和一些测试数据。Pro版本是图形界面的查询构造器,来帮助创建查询---更多信息:​​http://www.soapui.org/JDBC/testing-jdbc-databases.html​​。

Tip:MySQL Workbench

MySQL Workbench(https://dev.mysql.com/downloads/workbench/)是一款免费且非常好的图形化界面编辑器。除了大多数与数据库相关的任务外,这也可以为您生成查询。本机安装的是Premium:

2.2使用JDBC Request TestStep创建并检查数据_SoapUI数据驱动测试操作实例_04

通过命令行创建表的命令:

CREATE TABLE test.invoice (
id int(11) NOT NULL,
company varchar(45) DEFAULT NULL,
amount double DEFAULT NULL,
due_date datetime DEFAULT NULL,
PRIMARY KEY (id),
UNIQUE KEY id_UNIQUE (id)
)

插入数据的语句:

INSERT INTO invoice (id,company,amount,due_date) VALUES
(1,'comp1',100,'2014-09-30 00:00:00');
INSERT INTO invoice (id,company,amount,due_date) VALUES
(2,'comp2',200,'2014-12-01 00:00:00');

操作截图:

2.2使用JDBC Request TestStep创建并检查数据_SoapUI添加断言_05

TIP:JDBC Request TestStep能运行任何DDL和SQL语句

根据连接DB用户的权限,SoapUI的JDBC RequestTestStep也能创建数据,例如:插入、删除、更新,也可以执行DDL语句,如创建、删除表等。虽然这个方法在这里很方便,但这通常不被允许,在专业环境中以root用户身份进行连接也不是一个好的做法。


5. 添加一个简单SQL查询,该查询语句的作用是:找出表中的所有测试数据。

2.2使用JDBC Request TestStep创建并检查数据_SoapUI数据驱动测试操作实例_06


6. 最后,使用Assertions检查查询结果。在断言(Assertions)下添加一个XPath Match Assertion:

XPATH://Results[1]/ResultSet[1]/Row[1]/INVOICE.COMPANY[1]

Expected Results:comp1

截图如下:

2.2使用JDBC Request TestStep创建并检查数据_SoapUI数据驱动测试操作实例_07


7.  假设结果中有COMPANY=comp1,这个断言应该会pass。

2.2使用JDBC Request TestStep创建并检查数据_MySQL_08

2.2.3 工作原理

         JDBCRequest TestStep功能等同于SQL数据库客服端的TestStep。除了在TestCase中使用Assertions检查查询结果之外,它还可用于设置和拆卸测试数据,例如,用于Web服务或模拟服务后端数据库中的测试数据。

         这里还有两个JDBC RequestTestStep指定的Assertion 类型:JDBC Status、JDBC Timeout,更信息:​​http://www.soapui.org/JDBC/getting-started.html​​。

 


举报

相关推荐

0 条评论