我正在开发一个项目,该项目需要在运行时动态导入测试数据并运行与测试数据相对应的API测试。
我尝试使用XMLload,我直接从xml请求加载。这似乎工作正常。
但是像我们导入测试数据的GUI测试一样,我希望API测试也是如此 - 我可以动态地从外部源导入excel并将值提供给请求。
我该怎么做?
答案 0 :(得分:0)
据我了解您的问题,您希望从Excel文件加载测试数据。这就是我在之前的项目中所做的,但却有所不同,所以我希望这对你有用。
这些步骤将帮助您从Excel文件中驱动测试,您将在其中提供请求XML文件和其他测试数据的位置,例如:
=============================================== ==========================
从Excel文件导入数据的步骤:
打开 Data
窗格(查看 - >数据)
点击 on New Data Source
选择 Database
(不要担心我们将使用Excel作为数据库)
新窗口将显示为 Set Database Connection
点击 Build Connection String
图标
如果未选择,请点击 Provider
标签
选择 Microsoft Office 12.0 Access Database Engine OLE DB Provider
点击 Next
在 Data Source
部分中,提供Excel( .XLSX
)文件的路径,并在此(连接)标签上将所有内容保留为默认值
点击 Advanced
标签
从 Read Write
部分选择 Access permissions
转到 All
标签
选择 Extended Properties
,然后点击 Edit Value
在 Excel 12.0 Xml
字段中输入 Property Value
,然后点击 OK
现在返回 Connection
标签,然后点击 Test Connection
按钮
它应显示 Test connection succeeded
消息,如果不是,请返回并再次执行所有步骤
点击 OK
点击 Next
在 Data Source name
字段中提供工作表名称(您要导入的名称)
例如: [TEST_DATA$]
,其中 TEST_DATA
是工作表名称
在 Check SQL Statement
按钮
上方的大框中输入您的SQL查询
例如:
我想导入TEST_DATA表中的所有行,其中Execution_Flag列具有Y值。我用过的SQL语句:
SELECT * FROM [TEST_DATA$] WHERE Execution_Flag = 'Y'
点击 Check SQL Statement
按钮,它应该在新的 Query Preview
窗口中显示结果行
关闭 Query Preview
窗口,然后点击 Set SQL Statement
窗口上的完成
现在,您应该在数据窗格中看到结果行
*我喜欢这种方法的方法是,如果您要在Excel文件中进行更改并刷新数据窗格,它会自动更新 Data
窗格中的数据
=============================================== ==========================
现在从Excel文件中读取数据:
我想说我想从Excel文件中指定的位置读取我的请求XML文件(我们已导入)
我使用 Read From File activity
注意:这只是一个提供想法的示例
将 Read From File activity
拖放到您的工作区域中
这会抱怨没有为要在错误窗格中读取的文件指定路径
双击此消息,它将在 Properties
窗格中突出显示该字段
将鼠标悬停在文件路径旁边的“值”字段上,然后点击最后一个图标 Link to data source
,这将打开 Select Link Source for 'File path'
窗口
点击 Data source column
单选按钮,然后点击 TEST_DATA
部分的 Select a data source
从 Select data
部分中选择相应的列名称,然后点击 OK
,如图所示
=============================================== ==========================
类似地,您可以通过链接数据源并将其作为输入传递,通过数据窗格从Excel文件传递值/ s到自定义代码,在自定义代码中,您可以通过这种方式检索值:
string environmentName = CodeActivity18.Input.Environment_Name;
同样,您可以将Excel文件写为自定义代码的输出:
string finalResponseXMLPath = "some path";
CodeActivity18.Output.ResponseXML_FinalPath = finalResponseXMLPath;