0

我正在尝试创建一个测试框架,但不确定最好使用什么来存储将在 XML 文件中提供的测试用例名称和数据。例如,我想测试打印机功能,使其具有构造函数、打开打印机连接、向打印机发送数据、关闭打印机连接。所以 XML 将是:

<Printer>
  <TestCaseName>"Printer_Construct"</TestCaseName>
    <Data1>"Printer1"</Data1>

  <TestCaseName>"Printer_OpenConnection"</TestCaseName>
    <Data1>"Printer1"</Data1>

  <TestCaseName>"Printer_PrintString"</TestCaseName>
    <Data1>"Printer1"</Data1>
    <Data2>"Printing my string"</Data2>

  <TestCaseName>"Printer_CloseConnection"</TestCaseName>
    <Data1>"Printer1"</Data1>
</Printer>

这是我的测试框架想要的工作方式:

1-当测试操作员运行测试框架时,首先它将所有案例名称仅加载到listbox1中。它还不会加载测试用例数据。

2-当测试操作员选择要运行的特定测试用例时,它将将该测试用例加载到listbox2中。所以当它将测试用例加载到listbox2中时,它会显示测试用例名称和测试数据(data1和data2如上面的xml结构所示)。

3- 现在,只要测试操作员单击“运行”按钮,listbox2 中的测试用例就可以进行测试了。

那么如何存储测试用例数据呢?我应该将这些数据存储在内存中吗?如果是这样,我应该使用什么存储数据功能?如果不将这些数据存储在内存中,这是否意味着我每次访问测试用例数据时都必须读取 XML,所以这样做是一种好习惯吗?

谢谢。

4

2 回答 2

3

如果您在 XML 中定义测试用例,那么您可能会受益于在 XML 模式定义文件中定义其结构并使用工具从该文件生成内存数据结构以及反序列化器(自动读取器).xsd。该工具将为您提供C#可以包含在程序中的文件。您会惊讶于使用这种表示是多么容易。

但是,在开始之前,虽然您的 XML 结构可能在这个非常简单的初始情况下工作,但它似乎不太易于维护。如果“数据”节点在逻辑上属于它们之前的“测试用例”节点,那么即使在 XML 结构中也应该如此,如下所示:

<Printer>
    <TestCaseName Name="Printer_Construct">
        <Data1>"Printer1"</Data1>
    </TestCaseName>

    <TestCaseName Name="Printer_PrintString">
        <Data1>"Printer1"</Data1>
        <Data2>"Printing my string"</Data2>
    </TestCaseName>
</Printer>
于 2012-06-10T21:57:17.600 回答
1

存储此类信息的位置很大程度上取决于您的界面是什么。

对于 Windows 应用程序(控制台或 winforms),您可以在第一次需要时将其存储在内存中并继续查找。

另一方面,如果它是一个 Web 界面,我强烈推荐内置的 .net Web 缓存。它非常高效,并且具有强大的缓存到期选项,例如能够在您更改文件时随时重新加载文件,否则会持续存在。

于 2012-06-10T22:01:50.180 回答