我们正在开发一个与服务器交互的新WPF应用程序。应用程序向服务器发送请求并获得响应。响应在不同视图中以不同方式显示(即具有多个视图的单个模型)。
现在我们想要自动化WPF应用程序的测试。我有以下测试自动化需求:
请使用任何测试自动化工具告诉我如何实现上述目标。
答案 0 :(得分:1)
您描述的此功能称为"录制和播放"。正如您已经提到的那样,它仅限于简单的UI交互,并且可能难以维护。
只要您的交互逻辑变得更加复杂,您就必须使用更加分层的架构手动实现测试用例逻辑的主要部分。一种可能的架构可以包含以下层(这里的一些想法来自书籍Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation)
最低层将实现对UI控件本身的访问(例如,使用您提到的其中一个UI测试API。)
应用程序驱动程序层,它描述了应用程序的功能。在这里,您可以使用LoginForm.LoginUser(userName,passWord)
等方法。在内部,此方法可以处理完整的用户输入,按下所有必要的按钮,甚至在需要时进行一些额外的验证(例如,如果密码已过期且必须重新输入)。此层中的方法将通过较低层访问不同的UI控件。通常,该层是您正在测试的应用程序的抽象。
用例/测试用例层。在这里,您可以通过调用应用程序层来定义不同的测试步骤。
因此,在您的具体案例中,您可以在应用程序驱动程序层中使用名为ClientSoftware
的类,此类可以包含ValidateUserInput
或SendRequestToServer
等方法。然后,这些方法将实现必要的UI交互以执行所需的行为。在您的测试用例中,您必须设置ClientSoftware
的实例并调用所需的方法来实现您的测试用例。