这篇文章是关于在测试中思考过去、现在和未来的事情。尽管我非常希望能看得清楚,但我的crystal ball(水晶球,引申为洞察力)却相当模糊。学习是至关重要的,而这篇文章就是我的学习工具。
复杂性促使我们寻求低代码的解决方案
自从我今年六月成为一名测试顾问以来,如果说我发现自己一直在进行的一场对话,那就是澄清自动化测试工具选型的范围。我们有很多选择,而且,要从这些选择中找到合适的并不容易。
即使我把选择条件简化为免费工具和浏览器测试,我也会面临三个选项之间的讨论:
Selenium、Playwright还是Cypress?
你可能已经猜到了,即使在这三个选项之间,讨论的结果也并不像你想象的那么明显。Selenium正在推动标准化工作,这意味着虽然它现在支持WebDriver协议,但它已经在一些语言中支持WebDriver BiDi(双向)了。也就是说,在浏览器自动化测试领域,底层正在发生很多值得人们关注的变化。
观察Playwright存储库中的拉取请求动态,似乎WebDriver BiDi也在慢慢融入Playwright。当这一变化发生时,它将对整个格局产生重要影响。
就目前使用CDP(Chrome DevTools Protocol,Chrome开发者工具协议)而言,我们必须一再强调,Chromium既不是Chrome也不是Edge,Webkit也不是Safari。基于CDP运行的Playwright和Cypress并不能进行真正的跨浏览器测试。这种近似的方法可能足够了,针对单个浏览器的测试可能也足够了。但目前,如果你想要为用户使用的浏览器实现自动化测试,那么你需要基于WebDriver协议(如Selenium)的工具。
为了让事情更加复杂,这三个选项并非唯一选择。在Selenium的测试生态系统中,推荐使用在其基础上构建的框架之一,如Nightwatch或SeleniumBase,或者使用WebDriver协议但不使用Selenium的框架,如WebdriverIO。此外,将Selenium作为任何和许多商业工具的驱动程序也是一个选项,而且你可能甚至不知道底层框架是由什么驱动的。这里面有很多层次。
以及功能模块:
然而,当我们谈论这些工具时,我们并不谈论它们的层次或功能。我们只是提及工具的名称,让读者自己去弄清楚这一切。
我发现低代码平台的主要好处在于它们的封闭性。你不需要关心盒子外面的东西,也无法控制盒子里面的内容。它可能包含了你需要进行测试的所有事项,它简化了繁琐的世界。你可以不必再阅读并理解所有这些内容及其所有变化,转而可以专注于你的测试工作。
有时我们对工具的争论过多,以至于失去了重点。我们会长期使用自己选择的工具,而在我看来,保持开放性比简化本身更有价值。