APP接口测试小结

上一篇 / 下一篇  2016-05-27 17:15:53 / 个人分类:APP

   2月份时,本人接到一个测试任务,主题是《2月份App接口》,也称《H5调原生接口》需求。

        接到需求后首先就有一个疑问,为什么需要开发这种接口?由于以前本人以测试原生App为主,从来也没有想过类似的情况,一般原生App各自使用系统的方法即可完成开发并提交。后来想了想,这是跟我们的架构有关,由于我们App框架是基于原生+H5,H5负责展示和交互。如果让h5自己调用一些原生接口,由于Andriod和iOS系统,Pad版本等等不一样的原因,H5可能需要做一大堆的判断去做兼容,这会大大加大前端的工作量,而且很容易出现兼容性问题。所以让Android和iOS原生预定义一些统一的接口,h5直接调用使用,从而免去了复杂的兼容性判断,大大地减少前端工作,也使得性能更好。同时这里也可以看出接口测试最重要的一方面测试——兼容性测试,测试必要尽可能大地覆盖系统版本,分辨率,机型。

        接下来说说接口文档。接口测试通常分为输入和输出两方面,输入指测试时传入一些参数,而输出指最后反馈的结果,结果可能是一个页面、打开一个对话框、播放一段声音、返回一个结果集等等,具体视接口而定。例如下图一个transfer接口的说明(2月份App接口需求:原生-H5接口(开发和测试中接口))。

        从上面图片当中,我们可以看出一个接口,包括了接口类:bsl.infinitus.transfer.openWebPage: function(paramJson),这个看不懂没有关系,不是测试的重点,我们只需要知道openWebPage这个类名,它需要一个paramJson的参数。然后就是类名上面的接口标题“打开一个在线或本地H5的新页面”,这个标题最重要,我们可以从中知道这个接口的作用——打开一个页面,这个页面可以是本地页面(如离线的HTML页面,模块包中的h5页面),也可以是在线页面(如百度网),相当于我们浏览器打开一个页面。最后就是列表里面参数说明,也就是上面paramJson这个参数的说明。从列表中可知,paramJson是一个JSON类型的参数,这个参数里面包含了url,sInitFun,oInitParam,sTitle,sFlag,jNavInfo五个参数,这些参数里,jNavInfo也包含了rotation,navigationBar,returnView,gotoneturl四个参数,所以这个接口的实际需要测试的参数一共有9个,也就是说我们需要9个参数的组合构建测试用例。当然编写测试用例和测试前我们需要充分理解每个参数所起的作用。

        当然实际测试时,页面前端已经帮我们做好了(e帆网App——demo——bslH5),如下图所示,我们只需要填写所需要的参数后,点击try即可打开一个页面进行测试,而打开页面就是我们所需要的结果,图中打开的是本地com.infinitus.bslH5.demo\infinitus\transfer\openWebPage.html,访问该页面并且调用forCall函数,参数为haa,标题是Title……结果页也显示出正确的结果了。

 点击Try后打开页面  

最后说说接口测试要注意的地方:

1、务必了解每一个参数的作用和意思,因为基本上开发也有理解错误的,上面说的openWebPage的sFlag参数的作用在测试时经过了多次多方的沟通才最确认开发的第一版本是有问题。

2、即使感觉自己理解了需求,也必需要对Android和iOS进行对比,你可能会最终发现可能还有些遗留,如上面的openWebPage的sFlag参数,测试时即便根据与开发沟通并与开发一起构建的测试用例,后来发现Android和iOS还是有不一样的地方,从而发现了问题。

3、demo里的h5测试页面只是开发提供的参考的演示接口示例的页面,不一定完全满足你的测试要求,结果显示也不一样真实,如我测试audioServicesPlay接口是,由于系统不支持播放音频格式测试,不播放声音,这个本来是正常的,但接口需要返回一个false的值结果。但由于示例里面没有alert该结果,后面也险被坑一把。

        最后希望此文档能帮助大家对App接口测试有一个初步认识。


TAG: app接口

 

评分:0

我来说两句

日历

« 2024-04-23  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 65446
  • 日志数: 24
  • 建立时间: 2016-05-27
  • 更新时间: 2016-07-29

RSS订阅

Open Toolbar