我们目前正在使用MBUnit进行单元测试和UI测试。对于UI测试,测试矩阵轴的设置成本非常高(登录,浏览器实例,导航至页面等)。为了避免为每个测试用例设置这些,我们部分地依靠AssemblyFixture来管理其中的一些。

但是,由于无法滤除不适用于某些组合的某些情况,因此我们无法真正使用这种优化。因此,目前我们正在按测试用例进行一些设置,效率非常低。

我们可以将if语句放在测试代码中以检查正确的组合,但是我们也不希望这样。它会污染测试代码。

你们如何进行这种优化?还是测试矩阵管理?在另一个测试框架中是否有更好的做法?

有帮助吗?

解决方案

直到最近,我一直将UI自动化视为黑盒测试,其中我的UI测试针对完全独立的网站或应用程序进行。结果,测试在正常执行的约束下运行,并且受到许多环境开销问题的影响。

我最近采用了“浅”和“深” UI测试的概念,其中每组测试均在优化的配置下运行,以缓解环境差异并加快处理速度。例如,用一种避免OAuth登录开销并用固定用户名进行硬编码的机制换出了登录控制器。产品目录跳过数据库查找,并使用一些固定项进行硬编码。换出电子商务后端以执行快速操作,该操作根据信用卡和金额接受/拒绝交易。

在“浅”配置下,我可以针对UI逻辑执行“深度”测试。当我切换到“深度”配置时,它类似于生产环境,并且可以对完全集成的组件(例如登录名,产品目录,搜索等)执行“浅”测试。

需要多种测试策略。

其他提示

可能是 ui-test-automation-best-实践文章对您有所帮助。其中有一些示例,说明如何通过最小化登录和上下文更改来提高自动化ui测试的性能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top