我们目前正在使用MBUnit进行单元测试和UI测试。对于UI测试,测试矩阵轴的设置成本非常高(登录,浏览器实例,导航到页面等)。为了避免为每个测试用例设置这些,我们部分依赖于AssemblyFixture来管理其中的一些。
但是,由于无法过滤某些不适用于某些组合的情况,我们无法真正使用此类优化。所以目前我们正在为每个测试用例做一些设置,效率非常低。
我们可以将if语句放在测试代码中以检查正确的组合,但我们也不希望这样。它会污染测试代码。
你们如何进行这样的优化?或测试矩阵管理?在另一个测试框架中是否有更好的实践?
答案 0 :(得分:1)
可能是ui-test-automation-best-practices文章对您有所帮助。它提供了一些示例,说明如何通过最小化登录和上下文更改来提高自动化ui测试的性能。
答案 1 :(得分:1)
直到最近,我一直认为UI自动化是黑盒测试,我的UI测试驱动着一个完全独立的网站或应用程序。因此,测试在正常执行的约束下运行,并且会受到许多环境开销问题的影响。
我最近采用了“浅层”和“深层”UI测试的概念,其中每组测试都在优化配置下运行,以减轻环境差异并加快速度。例如,登录控制器与一种避免OAuth登录开销的机制交换出来,并使用固定的用户名进行硬编码。产品目录跳过数据库查找,并使用一些固定项进行硬编码。电子商务后端被换出以执行快速操作,接受/拒绝基于信用卡和金额的交易。
在“浅层”配置下,我可以对UI逻辑执行“深度”测试。当我切换到“深度”配置时,它类似于生产,我可以对完全集成的组件执行“浅层”测试,例如登录,产品目录,搜索等。
需要各种测试策略。