当前位置:   article > 正文

使用TestNG框架搭建自动化测试框架

使用TestNG框架搭建自动化测试框架

前言

开发过程中,每次发布前,对于变更内容我们能做到新功能的验证,但是如果项目体量较大时,我们可能无法评估到发布变更内容对之前代码的影响。如果让测试同学全量回归所需时间较长,那么如何简化这部分内容,一键做到验证本次变更对项目的影响。一方面是自动化测试用例,另一方面就是一个合适的测试框架了。

一、TestNG框架是如何执行的?

二、设计这个功能我们需要考虑的问题 

1.如何去读取资源文件

  1. public static List<XmlSuite> getAllXmlSuites() throws IOException {
  2.    String path = "resource文件夹中配置文件的相对路径";
  3.    List<XmlSuite> suites = new ArrayList();
  4.    //获取配置文件的输入流
  5.    InputStream resourceAsStream = TestNgTest.class.getClassLoader().getResourceAsStream(path);
  6.    //解析配置文件中的内容
  7.    suites.addAll(new Parser(resourceAsStream).parse());
  8.    return suites;
  9.    }

2.执行

代码如下(示例):

  1. TestNG testNG = new TestNG();
  2.    //填充获取到的用例信息
  3.    testNG.setXmlSuites(suites);
  4.    testNG.run();

3.优化点

(文件级别过滤)可以配置多个不同的资源文件,例如不同环境,不同租户,不同模块等。通过枚举维护资源文件的地址,根据匹配到的枚举获取到配置的资源文件列表。从文件级别去筛选。

(方法级别过滤)当我们获取到所有的xmlSuite对象后,可以通过获取Test对象,Test对象中又包含了类对象信息,类对象信息中包含了方法信息,最终可以根据传入的方法名称取匹配执行哪些具体的自动化用例。

资源文件的整体结构如下:

  1. <suite name="My suite" parallel="tests" thread-count="1">
  2.    <!--为某个类传参数,指定方法可用此参数-->
  3.    <test name="sop">
  4.    <classes>
  5.    <class name="com.demo.test">
  6.    <parameter name="name" value="123"/>
  7.    <method>
  8.    <include name="test"/>
  9.    </method>>
  10.    </class>>
  11.    </classes>
  12.    </test>
  13.   </suite>

具体对应到Test类中,写法如下,可以获取到配置的name的值:

  1. @Parameters({"name"})
  2.   public void test(String name) {
  3.    System.out.println(123);
  4.   }

4.TestNG切面

TestNG的切面和JAVA中的切面使用稍微有些不同,他是直接定义一个类继承IHookable接口,重写run方法。执行每一个XmlSuite中的方法时,都会先进入到这个切面中,我们可以在切面中记录方法执行的信息,方法执行的时间,以及方法执行异常捕获等。通过调用IHookCallBack.runTestMethod()方法可以继续执行用例。

总结

通过以上内容,我们可以通过一个接口来执行某个模块,某个环境所有配置的自动化用例,并可以通过开发前端页面来展示用例的执行情况,用例执行耗时,失败用例的错误信息,重跑所有的失败用例等功能。

  1. ​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
  2. 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
  3. 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
  4. 分享他们的经验,还会分享很多直播讲座和技术沙龙
  5. 可以免费学习!划重点!开源的!!!
  6. qq群号:485187702【暗号:csdn11

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/603707
推荐阅读
相关标签
  

闽ICP备14008679号