WPF应用程序的测试自动化

本文关键字:自动化 测试 应用程序 WPF | 更新日期: 2023-09-27 18:28:40

我们正在开发一个与服务器交互的新WPF应用程序。应用程序向服务器发送请求并得到响应。响应以不同的方式显示在不同的视图中(即具有多个视图的单个模型)。

现在我们想要自动化WPF应用程序的测试。我有以下测试自动化需求:

  1. 使用用户输入的参数验证发送到服务器的请求
  2. 使用多个视图中显示的数据验证从服务器接收到的响应

请让我知道如何使用任何测试自动化工具来实现上述目标。

WPF应用程序的测试自动化

您描述的这个功能叫做"录制和播放"。正如您已经提到的,它非常局限于简单的UI交互,并且可能会变得难以维护。

一旦交互逻辑变得更加复杂,就必须使用更分层的体系结构手动实现测试用例逻辑的主要部分。一种可能的体系结构可以有以下层(这里的一些想法取自《持续交付:通过构建、测试和部署自动化的可靠软件发布》一书)

  • 最底层将实现对UI控件本身的访问(例如,通过使用您提到的一个UI测试API)

  • 应用程序驱动程序层,用于描述应用程序的功能。在这里,您可以使用类似LoginForm.LoginUser(userName,passWord)的方法。例如,在内部,这种方法可以处理完整的用户输入,按下所有必要的按钮,甚至在需要时进行一些额外的验证(例如,如果密码已经过期,必须重新键入)。该层中的方法将通过较低层访问不同的UI控件。通常,这一层是测试中应用程序的抽象。

  • 用例/测试用例层。在这里,您可以通过调用应用程序层来定义不同的测试步骤。

因此,在您的具体案例中,您可以在应用程序驱动程序层中有一个名为ClientSoftware的类,该类可以有类似ValidateUserInputSendRequestToServer的方法。然后,这些方法将实现必要的UI交互,以执行所需的行为。在测试用例本身中,您必须设置ClientSoftware的实例,并调用所需的方法来实现测试用例。