首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

接口测试参数化方案

缘由

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:若队列为空,发生阻塞,等待有元素。

最后

看别人做的好漂亮,好厉害,自己动手尝试去做的时候,就感觉坑也不少的

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171227G0321400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券