For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
广州IT培训:相信从事测试行业的同志们对自动化测试有抱有一个美好的幻想,广州培训达内教育编者谈及到底该怎么实现和落地呢?接下来我将结合分层测试金字塔和实际案例为大家分享。
如果大家想了解到更多的软件测试技术,或者想学一门专业的软件测试技术,IT技术,欢迎来广州达内培训机构进行更多的咨询和了解。
说起自动化测试不得不提及测试金字塔,这种三角形的结构主要为我们展示了一个健康的自动化测试体系应该是什么样子的。如图所示,金字塔的从上往下依次是UI测试,接口测试,单元测试, 越在高层影响就越大,花费的时间和精力就越多。图示的测试金字塔只是一种形态示例,不同项目的金字塔的实现内容可能略有区别。
在Java技术资讯中;我们都会相应的分析到:在测试金字塔中可以看到,UI层面的自动化影响大、变化多、可维护成本高,所占比例也最少。所以在我们看来,UI层面的自动化应该是一些从高层次上验证一些happy pass,确保我们的核心功能可用。
拿案例项目来举例,我们识别出最核心的功能就是通过过滤器筛选数据来进行展示或计算,所以我们的用例主要会去验证操作这些过滤器能否筛选出正确的数据。 在技术选型上,我们 主要用到BDD的思想,选用cucumber + capybara这套体系去做UI层的自动化。
UI层自动化的适用场景是做核心功能的回归测试和冒烟测试,所以在实施过程中,要注意不要把所有的用例都堆砌在UI层,而是尽可能放到接口测试和单元测试中去做。
在代码层面,我们可以遵循page object的设计模式,避免在测试代码中直接操作html元素。这样就可以减少重复的代码并提高代码的可维护性。
在整个功能大概完成,API已经基本确定后,测试和开发一起结对写性能测试。
在写功能测试的过程中,我们可能会和一些其他的模块或第三方API有依赖,在这种情况下,通常可以通过Mock的方法去解决。
如案例项目中有一个测试场景是:调用一个第三方的API,当这个API出错时,需要接受到API返回的错误码并对错误码进行处理。在实现测试的时候,我们没有办法让第三方API真正的挂掉并返回错误码,所以我们只需要模拟这个请求出错,验证我们代码已经对这种错误进行过处理。