SoapUI JDBC


SoapUI JDBC

SoapUI 引入了一个用于从数据库中检索数据或记录的新概念,称为 JDBC。它以XML格式提供结果,可以像XPath、XQuery等标准方式断言或处理结果。在 SoapUI JDBC 中,我们将学习如何创建 JDBC 连接、JDBC 属性和 JDBC 断言。

为了在SoapUI 中创建JDBC连接,我们必须遵循以下步骤。

Step 1:选中项目,在选中的测试用例的Test Steps上右键,Add Step -> JDBC Request,如下图。

SoapUI JDBC

Step 2:选择JDBC Request后,弹出对话框指定新步骤的名称如下图。

SoapUI JDBC

步骤3:由于OK按钮被点击时,它显示的JDBC请求窗口创建JDBC连接,如下所示。

SoapUI JDBC

为了创建JDBC连接,我们必须提供 JDBC 配置的必要和有效信息,例如驱动程序名称和连接字符串。有效信息用于标识数据库的名称并创建连接以使用定义的数据库。

第四步:如果我们要连接MySQL数据库,我们需要将驱动定义为com.mysql.jdbc.Driver。同样,我们可以为另一个数据库定义驱动程序,在 SoapUI 的文档部分中提到。

第 5 步:要在JDBC 中设置连接字符串的格式,请使用下面给出的语句。

jdbc:mysql://hostname:port_name/database_Name?[Property]=[value]

其中属性是用户名,值是与它们各自的参数值相关的密码,以连接数据库。

例如,

jdbc:mysql://localhost:3306/SoapUIDB?user=root&password=

这里我们将密码字段留空,因为我们没有在phpMyAdmin 中保存任何密码。如果您在 phpMyAdmin 中设置了密码,请指定它。

注意:在为 SoapUI 工具创建 JDBC 连接之前,我们必须在 phpMyAdmin 中定义或创建数据库名称。

步骤 6:指定 JDBC 的配置细节后,单击测试连接的运行图标(绿色三角形)以验证连接。如果JDBC连接成功,则显示成功对话框;否则,它会显示失败的连接详细信息。

SoapUI JDBC

Step 7:当我们点击Run按钮时,会弹出一个对话框,成功测试JDBC连接,如下图。

SoapUI JDBC

JDBC 查询的执行

为 JDBC 创建数据库后,我们需要定义 JDBC 属性。JDBC 属性具有将参数名称添加到属性列表的属性,该属性列表可用作变量以使用SQL查询从数据库中查找定义的项目。

例如,我们需要获取特定国家的名称及其属性,将 SQL 查询设置为Select * from Table_Name where Table_Name.name = :name。当查询在 SoapUI JDBC 中执行时,它会从 JDBC 数据库返回一个特定国家的名称及其属性。

我们已经创建了名为country的数据库表并执行以下查询以将数据插入表中。我们稍后使用 JDBC SQL 查询检索的数据。

INSERT INTO country VALUES ('Afghanistan', 'Asia', 'Kabul', '93');  
INSERT INTO country VALUES ('Åland Islands', 'Europe', 'Mariehamn', '358');  
INSERT INTO country VALUES ('Albania', 'Europe', 'Tirana', '355');  
INSERT INTO country VALUES ('Algeria', 'Africa', 'Algiers', '213');  
INSERT INTO country VALUES ('American Samoa', 'Oceania', 'Pago Pago', '1684');  
INSERT INTO country VALUES ('Argentina', 'Americas', 'Buenos Aires', '54');  
INSERT INTO country VALUES ('Armenia', 'Asia', 'Yerevan', '374');  
INSERT INTO country VALUES ('Australia', 'Oceania', 'Canberra', '61');

SQL 查询在 JDBC 中用于从数据库表中搜索特定项目或项目集合。让我们创建 JDBC 请求以接受来自数据库表的国家记录。

步骤 1:将 SQL 查询编写为select * from country以从定义的表中选择所有国家/地区的名称及其附加属性。

SoapUI JDBC

第二步:之后,点击左上角的运行按钮,执行JDBC的SQL查询,如下图。

SoapUI JDBC

执行 SQL Query 后,它会在屏幕上产生上述输出。上面的输出包含从数据库的国家表中提取的国家名称、地区、首都和呼叫代码。

这里,JDBC SQL 查询的结果:

Results>  
    <ResultSet fetchSize="0">  
        <Row rowNumber="1">  
            <COUNTRY.NAME> Afghanistan </COUNTRY.NAME>  
            <COUNTRY.REGION> Asia </COUNTRY.REGION>  
            <COUNTRY.CAPITAL> Kabul </COUNTRY.CAPITAL>  
            <COUNTRY.CALLINGCODES> 93 </COUNTRY.CALLINGCODES>  
        </Row>  
        <Row rowNumber="2">  
            <COUNTRY.NAME> ?land Island s</COUNTRY.NAME>  
            <COUNTRY.REGION> Europe </COUNTRY.REGION>  
            <COUNTRY.CAPITAL> Mariehamn </COUNTRY.CAPITAL>  
            <COUNTRY.CALLINGCODES> 358 </COUNTRY.CALLINGCODES>  
        </Row>  
        <Row rowNumber="3">  
            <COUNTRY.NAME> Albania </COUNTRY.NAME>  
            <COUNTRY.REGION> Europe </COUNTRY.REGION>  
            <COUNTRY.CAPITAL> Tirana </COUNTRY.CAPITAL>  
            <COUNTRY.CALLINGCODES> 355 </COUNTRY.CALLINGCODES>  
        </Row>  
        <Row rowNumber="4">  
            <COUNTRY.NAME> Algeria </COUNTRY.NAME>  
            <COUNTRY.REGION> Africa </COUNTRY.REGION>  
            <COUNTRY.CAPITAL> Algiers </COUNTRY.CAPITAL>  
            <COUNTRY.CALLINGCODES> 213 </COUNTRY.CALLINGCODES>  
        </Row>  
        <Row rowNumber="5">  
            <COUNTRY.NAME> American Samoa </COUNTRY.NAME>  
            <COUNTRY.REGION> Oceania </COUNTRY.REGION>  
            <COUNTRY.CAPITAL> Pago Pago </COUNTRY.CAPITAL>  
            <COUNTRY.CALLINGCODES> 1684 </COUNTRY.CALLINGCODES>  
        </Row>  
        <Row rowNumber="6">  
            <COUNTRY.NAME> Argentina </COUNTRY.NAME>  
            <COUNTRY.REGION> America s</COUNTRY.REGION>  
            <COUNTRY.CAPITAL> Buenos Aire s</COUNTRY.CAPITAL>  
            <COUNTRY.CALLINGCODES> 54 </COUNTRY.CALLINGCODES>  
        </Row>  
        <Row rowNumber="7">  
            <COUNTRY.NAME> Armenia </COUNTRY.NAME>  
            <COUNTRY.REGION> Asia </COUNTRY.REGION>  
            <COUNTRY.CAPITAL> Yerevan </COUNTRY.CAPITAL>  
            <COUNTRY.CALLINGCODES> 374 </COUNTRY.CALLINGCODES>  
        </Row>  
        <Row rowNumber="8">  
            <COUNTRY.NAME> Australia </COUNTRY.NAME>  
            <COUNTRY.REGION> Oceania </COUNTRY.REGION>  
            <COUNTRY.CAPITAL> Canberra </COUNTRY.CAPITAL>  
            <COUNTRY.CALLINGCODES> 61 </COUNTRY.CALLINGCODES>  
        </Row>  
    </ResultSet>  
</Results>

选择或获取数据的 JDBC SQL 查询

按照下面给出的步骤使用 JDBC SQL 查询选择和获取数据。

步骤 1:要添加 JDBC 属性,请单击 (+) 按钮,然后传递参数的名称。然后提及 SQL Query 以选择国家/地区名称,如下图所示。

SoapUI JDBC

在这里,我们将属性名称作为name传递,将属性值作为Australia传递。之后,将 SQL 查询写为'select * form country where country.name = :name'

第二步:点击运行按钮,执行JDBC的SQL查询,如下图。

SoapUI JDBC

这里,JDBC SQL 查询的结果:

<Results>  
    <ResultSet fetchSize="0">          
         <Row rowNumber="1">  
            <COUNTRY.NAME> Australia </COUNTRY.NAME>  
            <COUNTRY.REGION> Oceania </COUNTRY.REGION>  
            <COUNTRY.CAPITAL> Canberra </COUNTRY.CAPITAL>  
            <COUNTRY.CALLINGCODES> 61 </COUNTRY.CALLINGCODES>  
        </Row>  
    </ResultSet>  
</Results>

JDBC 断言

JDBC 断言用于验证使用来自数据库表的 JDBC 请求接收的数据。

要在 SoapUI 中使用 JDBC 断言,我们必须遵循以下步骤。

步骤1:点击(+)按钮添加JDBC请求TestStep的断言,如下图。

SoapUI JDBC

Step 2:点击Add Assertion按钮后,会显示Add Assertion 窗口来选择断言,如图所示。

SoapUI JDBC

第 3 步:单击“添加”按钮后,它将在 SoapUI 中正确执行 JDBC SQL 查询,如给定图像所示。

SoapUI JDBC

如果 JDBC 状态断言为真,则断言有效;否则,它会显示错误消息。类似地,我们可以在 SoapUI 中使用不同类型的断言来验证 JDBC 请求 TestStep。