适用于2个移动应用程序的自动UITest策略-用户应用程序/管理员应用程序

时间:2018-10-04 15:59:32

标签: jenkins mobile automated-tests xamarin.uitest

我在一个开发团队中,我们有2个独立的移动应用程序。其中一种应用程序是针对用户的。另一个应用程序是那些用户的管理员。我的主要目标是在Admin应用程序中执行一个测试用例,然后 在Users应用程序中运行一个测试用例以验证其正常工作。我该如何处理?

例如,我想在Admin应用程序中运行一个撤销了某些特权的测试用例。然后,我想从“用户”应用程序运行一个测试用例,以检查确认特权已被撤销。

也许这根本不是一个好的策略-但对我的团队来说是有意义的,因为我们有2个可协同工作的应用程序-如果我们在Admin应用程序中执行某些功能-我们希望看到预期的结果在“用户”应用中

我的计划是在每个测试中标记一个类别,例如“特权”

在詹金斯上:

  1. 在我撤消某些特权的管理应用上运行“特权”类别
  2. 在我确认已撤销特权的用户应用程序上运行“特权”类别

这似乎是一个不错的测试策略。但是,如果我有20个UITest,这意味着我的仪表板中将有20个不同的Jenkins项目,每个UITest(每个设备,每个平台)一个。看来,有了20个UITest,我最终将获得100多个Jenkins项目。那对我来说并不理想。

其他人是否提出了一种测试策略,他们需要来回测试2个单独的项目。我了解这并不是真正属于单元测试的范围,并且我可能会在单元测试和常规方面得到一些模糊的答案。但是我确实相信移动设备是UITest世界中的另一种动物

2 个答案:

答案 0 :(得分:1)

您的问题有几点要点

  

在Admin应用程序中执行某些功能-我们希望在Users应用程序中看到预期的结果

如果您需要测试两个应用程序之间的集成,则可以为

使用正确的标签
  

用类别标记每个测试

无论如何,您将需要某种方式来组织套件。这样做的好方法是test annotations。我认为Lazy setup适用于您的情况。必要时,它将为所有标记的测试设置所需的状态。

  

需要来回测试两个单独的项目

对于大多数关键业务功能,必须进行端到端测试。我的建议是雇用Backdoor manipulation。您的其他测试应该已经涵盖了较简单的情况(例如,在Admin应用中设置权限),因此,如果您已经使用了此功能,就不会有多余之处。

  

看来,有了20个UITest,我最终将拥有100多个Jenkins项目。那不是很理想

您实际上不需要每个套件都需要一个Jenkins项目,只需通过CLI参数配置测试,您的工具就会为您代劳。您需要的是将标签(或平台或设备)传递给跑步者的标签。

答案 1 :(得分:0)

通常,您希望测试相互依赖。看这个例子:

  1. 在管理应用中,您设置特权。
  2. 您打开用户应用程序。
  3. 应该设置特权,但是没有。

您知道出了点问题,但是您不知道是管理应用程序还是用户应用程序无法正常工作。

因此,您应该通过模拟(伪造)后端来独立测试它们:

  1. 打开管理应用。
  2. 设置权限。
  3. 询问模拟的后端:您是否收到管理应用程序发出的设置特权的呼叫?

在针对用户应用的独立UI测试中,请执行以下操作:

  1. 在设置了权限的地方建立一个伪造的后端
  2. 打开用户应用
  3. 查看是否设置了特权。

通过分离两个应用程序的测试,您将知道两个应用程序都不起作用。

我在工作中用于执行此类操作的软件称为WireMock,但那里也有其他软件。