小解歪果同行对SDK实现自动化测试用例
作者:桃园小七的博客 发布时间:[ 2016/9/13 10:58:12 ] 推荐标签:自动化测试 测试用例
异步接口的处理
异步接口分两步处理,第一步在服务中对接口调用的封装,增加了CountDownLatch限制来等待数据返回;第二步是测试用例定义时增加超时限制。
@Test(timeout=10000)
public void testSwitch_on() throws TimeoutException, InterruptedException {
if((Boolean)mService.getCachedDp("1")){
mService.send("1", "false");
}
dpUpdateReply = mService.send("1", "true");
Log.i(TAG, "testSwitch_on() - dpUpdate dp[1][" + dpUpdateReply.get("1") + "]");
assertEquals("testSwitch_on() - dpUpdate dp[1]", true, dpUpdateReply.get("1"));
}
服务的send函数,对于用例而言是同步的,传进去输入、拿到输出判断结果即可;在真正的执行过程如果没有返回的话,10秒超时后用例会自动报异常。
文档对接
The test suite setup assumes:
A TuyaSmart e-mail type account is available. If you want to use another account type, you can add the login code for this in class srcandroidTestjavacom extapp uyatestIntegrationService.java .
Exactly one radiator is already connected to the account.
外国工程师对文档的描述很详尽,也不?嗦,总之很专业。他会把每一步该做什么、怎么做描述的很清楚。这一点十分值得学习。
一些细节
CountDownLatch 类,在这个测试场景下尤为好用,国际友人还专门提了一句:
java.util.concurrent.CountDownLatch is used for awaiting listeners being triggered and return result to test call. We avoid using Thread.sleep().
用例设置超时的方法大概有 两种 的样子,除了本例的注解实现意外还可以通过Rules来实现的样子:
@Rule
public Timeout globalTimeout= new Timeout(10);
统一的日志关键字。代码中很少出现注释,易懂的函数/变量命名和统一整齐格式的日志。
针对SDK的测试用例工程开源到github上,一些敏感信息(如SDK要求的产品key、测试需要的账号/密码等)采用XML配置的方式实现;并且在开源工程中没有放置我们提供的SDK包——保证了对外公布SDK渠道的性。这些信息都做成了可配置的、并且在readMe中做了说明,优雅而专业。
思考
这位外国同行的解决问题的思路显然更加程式化,更加偏向于用固有宜用的流程来思考,这显得更加专业。代码实现上也有不少值得借鉴的地方,有此一例照猫画虎,之后针对硬件的命令传输用例的实现非常方便,甚至可以考虑根据不同的数据点数据类型自动化生成用例代码。并且这种用例工程作为SDK的提供方和使用方的沟通工具也是不错的,能够解决一些使用问题上的误解——使用一方可以提供不通过的用例让提供方修改SDK源码/提供一方也可以通过用例证明SDK本身并无问题。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南