基于反射的UI测试--运行待测程序/设置窗体属性
1、运行待测程序
要使用反射技术通过UI来测试Windows窗体,必须要在测试套件所在的进程内创建一个单独的线程来运行被测程序。如果不这么做,而试图像下面这样使用Process.Start()方法:
string exePath = "..\\..\\bin\\debug\\aut.exe"; System.Diagnostics.Process.Start(exePath);
这种方法虽可以把程序运行起来,但是测试套件不能直接和待测程序进行通信,因为测试程序和被测程序运行在不同的进程中。要让测试程序能够与被测试程序进行通信,就要在测试程序中为被测试程序产生一个单独的线程。这样一来,测试程序和被测试程序就会运行在同一个进程里,从而可以互相通信。
2、设置窗体属性
基于反射的UI自动化测试中,直接调用PropertyInfo.SetValue()方法设置窗体属性,隐藏着一个严重的问题:我们并不是从窗体的主线程里,而是在由自动化测试程序所创建的一个线程里调用SetValue()。在这种情况下,不可以直接调用SetValue()方法。但可以使用Form.Invoke()方法以间接的方式来调用。

浙公网安备 33010602011771号