缘由
12月23号去上海参加了论坛举办的活动,干货蛮多的,感觉别人家做的都好腻害,
其中Lego接口自动化测试印象挺深的,通过配置文件的方式生成接口测试用例,
因为恰好我们公司也准备做接口自动化的部分,之前还没有这部分
依赖
rest-assured
testng
两种方案代码实现
这是我在参加活动前的方案,有同事推荐retrofit不错,自己写了一下,感觉不方便
在论坛上看到的rest-assured挺不错的,用起来方便的
参数配置实现
简单学习了一下yaml配置文件的写法,还是没完全搞清楚,
所以我选择写出javabean出来先,然后dump出来,再按dump出来的格式学着具体写
一个project下面有多个 testsuite,一个testsuite下面有多个用例,然后全局参数,测试套参数,用例参数,校验结果
读取yaml文件并遍历,执行测试
对比
代码:
优点是写代码,灵活性高,特殊场景什么的都可以处理;
缺点:如果100,1000条用例的话,重复代码非常多,后期维护可能很心累
配置文件:
优点是结构清晰,轻量级
缺点:未来可能出现特殊场景,随着用例数上去之后,很难通过修改配置文件的方式去兼容更多的场景
问题
如果yaml文件中有10条用例,在执行时是放在一个@Test方法中执行的,就是说第3条用例失败即全部失败了,如何进一步拆分
rest-assured初始化需要7~8秒的时间,感觉有点长了
解决方案
通过代码来运行testNG的测试用例,读取用例后,放入队列中,每次执行时读取一条用例即可
报告
其他小芝麻
TestNG测试注解以及生命周期:
@BeforeClass(执行一次)
@BeforeMethod(N个Test 方法执行N次)
@Test Test方法(此注解可能在类上表示多个,在方法表示一个)
@AfterMethod(N个Test 方法执行N次)
@AfterClass(执行一次)
LinkedBlockingQueue
poll: 若队列为空,返回null。
remove:若队列为空,抛出NoSuchElementException异常。
take:若队列为空,发生阻塞,等待有元素。
最后
看别人做的好漂亮,好厉害,自己动手尝试去做的时候,就感觉坑也不少的
领取专属 10元无门槛券
私享最新 技术干货