【问题标题】:Model Based Testing android基于模型的测试android
【发布时间】:2017-04-21 01:28:06
【问题描述】:

我已经生成了需要执行的测试用例。我已经编写了彼此独立的测试方法,并且编写脚本以通过 adb 执行这些方法没有帮助,因为它们没有按照给定的顺序执行。

我想知道一个首选的方法? 或者我如何通过 adb 自动化这些多个测试。

我意识到大多数人都倾向于在他们的代码下使用 adb 命令,所以不知道是否有可能有帮助的工具。我也对此持开放态度

谢谢

【问题讨论】:

  • @akash93 我已经在编写脚本,但问题是我的测试用例相互依赖,这是不被鼓励的。我想要一种方法,现在编写我所有的测试用例,然后在我给它的路径中执行它们。例如,单击按钮 1,然后单击按钮 2。但我事先不知道这一点。所以我想在运行时执行路径。我希望这个解释足够好

标签: java android ui-automation model-based-testing


【解决方案1】:

我认为您的测试用例结构有问题。 测试用例应该相互独立,这不仅是被鼓励的,而且通常是确保测试完整性的必要条件。

如果您有依赖操作,则需要将它们捆绑在同一个测试用例中,或者您需要查看依赖注入/模拟。

话虽如此,JUnit4 有一个 @FixMethodOrder 注释,您可以添加它以按顺序运行测试。

import org.junit.runners.MethodSorters;

import org.junit.FixMethodOrder;
import org.junit.Test;

@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class SampleTest {

   @Test
   public void firstTest() {
      System.out.println("first");
   }

   @Test
   public void secondTest() {
      System.out.println("second");
   }
}

【讨论】:

  • 我明白测试应该相互独立。但我正在尝试找到一种方法来自动执行订单,并在 android 的代码中自行安排订单。我更喜欢在一个测试方法中编写所有测试操作,但是随着我生成新的测试用例顺序,这些场景会发生变化。因此,如果您对我有建议,我会很高兴。另一件事是我读了 fixmethodorder 并不能保证一个测试在另一个之前完成
  • 在这种情况下,我唯一能想到的就是将您当前的测试转换为私有方法,然后创建按您需要的顺序调用这些私有方法的测试
  • 你能分享你读到FixMethodOrder不保证顺序的资源吗?据我所知,它确实如此,因为这是拥有该注释的全部意义
  • 我会尝试找到资源并发送它。但它并没有否认 FixmethodOrder 在另一个中执行的事实。但它说你不能保证一个在另一个之前完成。
  • 我也想到了你给的方法,就是把它们放在私有方法中并执行这些私有方法。但我想问的问题是如何从命令行等外部程序执行此操作,因为我的所有方法都在我的 android 中定义,但是从我的模型生成的路径将决定执行哪些方法。但是我需要在我的测试方法中执行这些方法。但问题是如何。你有什么想法吗,我很高兴知道。谢谢。
猜你喜欢
  • 2017-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-15
  • 1970-01-01
  • 2021-09-30
  • 1970-01-01
相关资源
最近更新 更多