通用测试框架






4.33/5 (6投票s)
以动态方式“编程”任何测试用例的通用框架
引言
这个工具是一个非常通用的框架,用于以动态方式“编程”任何测试用例,一个动态的“最终状态机”,可以按照定义的顺序执行任何“测试块”。
每个“块”在其参数中可以进行大量配置,一个“块”的输出可以重定向到任何其他“块”的输入。 您可以通过在“InputRow”列的combobox
中选择其编号来引用先前“块”的输出。
通过添加/删除可以轻松更改“块”的顺序。
创建测试用例后,您可以将其保存到*.ETF文件中,以便以后使用此预定义的测试用例。
测试运行完成后,将出现一个消息框显示结果,协议文件将写入“%appdata%
”。
29.07.2020 15:28:34: Creating Test Brick: OneStep ...
29.07.2020 15:28:34: Creating Test Brick: FindRegExp ...
29.07.2020 15:28:34: Creating Test Brick: AssertEqual ...
29.07.2020 15:34:17: STEP 1
29.07.2020 15:34:20: STEP 2
29.07.2020 15:34:20: Search for OK
29.07.2020 15:34:20: Found 1 times
29.07.2020 15:34:20: STEP 3
29.07.2020 15:34:20: EQ
29.07.2020 15:35:38: **** Test OK! ****
实现
有趣的是,如何通过添加或删除行来动态更改 WPF GUI(代码隐藏)。
这个Grid
是我们需要调整的对象。 首先,我们清除“旧”Grid
并添加所有列和行。
private void CreateDataGrid()
{
// Clear grid
grdData.ColumnDefinitions.Clear();
grdData.RowDefinitions.Clear();
// Create Columns
int nCol = 0;
int nRow = 0;
RowDefinition gridRow = new RowDefinition();
gridRow.Height = new GridLength(25);
grdData.RowDefinitions.Add(gridRow);
同样有趣的是,从基本实例创建派生类的可能性。
TestBrickFactory
通过了解其名称(Activator:https://docs.microsoft.com/en-us/dotnet/api/system.activator)从基本的TestClass
“构建”一个特殊的“块”。
public static TestClass CreateTestBrick(TestClass oBase, string sName)
{
Logger.Instance.Write("Creating Test Brick: " + sName + "...");
string sBrickName = "TestingFramework.Model." + sName;
var oType = Type.GetType(sBrickName);
TestClass oClass = null;
if (oType != null)
oClass = (TestClass)Activator.CreateInstance(oType, oBase);
return oClass;
}
Using the Code
由于反射,添加新的测试“块”非常容易:这需要创建一个从抽象TestClass
派生的新类,并重写单个虚拟方法ExecuteTestStep()
:
class OneStep : TestClass
{
public OneStep(TestClass oBase) : base(oBase)
{
TestBrick = "OneStep";
}
public override string ExecuteTestStep()
{
// Do Smth!
}
}
历史
- 2020年7月29日:发布(版本 1.0.1)
- 2020年7月30日:添加章节“实现”
- 2020年8月10日:小更新版本 1.0.2