• 1
  • 2
分享

  一、什么是API接口测试?

  API接口有多种,个人将其划分为三类。

  第一种是函数级别的,测试需要对接口的各个参数进行测试,如:

  Int getResult(String key, String ID, Int ticket)。

  第二种是对象级别的,开发在使用API接口时,先引入包名,在使用之前声明一个对象,之后可以使用对象提供的方法,而测试时,需要测试的是API的功能及对数据输入的正确性。第二种和第一种的差别是,我们只需关注提供给用户使用的接口就可以了,不用关心接口调用其他函数情况,相对于第一种来说,测试的粒度要大一些,范围小一些。

  第三种是http协议的接口,App客户端和后端服务连接,一般采用的都是http协议,客户端通过get和post的方法从后端服务获取数据。第三种相对于第二种来说,粒度更大,我们关注的接口更少,但是这些接口都是核心功能。

  二、为什么要测试API接口?

  App后端服务,在出现功能异常时,或者吐出异常数据时,可能会导致客户端功能异常,甚至出现崩溃的现象。而客户端由于数据的问题而崩溃,如果容错不到位,可能导致App永远无法启动。这种伤害,对用户,对公司来说,都是巨大的。因此有必要进行API接口的测试。

  三、如何来测试API接口?

  目前测试API接口的方法很多,如:使用fiddler的发送get、post的功能进行校验。缺点是,测试一遍后,在回归测试时,需要手动再执行一遍,非常耗时。

  有人建议使用python的request进行API接口测试时,通过编码方式进行API接口测试,的确是一个好的方法。但是问题是,时间。在有限的测试时间内,可能没有时间去做这个脚本。如果完成这个脚本,至少要进行一轮手工测试,从而才能了解到期望的返回值是什么样的。

  有没有这样一种工具,手动测试完成后,不需要写太多代码,立马可以用功能性测试的cases进行自动化回归呢?

  答案:有。PostMan就是这一款工具,既可以像使用Fiddler一样,也可以像使用脚本一样。

  o试用范围:http  API接口的测试

  o支持的平台:windows & Mac OS

  1.环境的搭建

  1)安装chrome浏览器

  2)在chrome地址栏打开: https://chrome.google.com/webstore/search/postman

  3)填加postman 和 postman interceptor

  opostman是一个独立的chrome app;

  opostman interceptor 可以和postman进行数据同步,并将chrome浏览器中的浏览记录发送到postman。

  4)在chrome地址栏打开: chrome://extensions/

  点击postman下的"详细信息",填加快捷方式到桌面。

  5)启动postman并注册一个账号。

  2.Postman的使用

  1)在chrome浏览器中打开postman interceptor同步开关

图1.jpg

  2)启动post man,打开同步开关

图2.jpg

  3)在chrome浏览器中访问搜狗首页,在postman history的tab下可以看到访问的记录

图3.jpg

  4)填加一个检查点

图4.jpg

  o选择需要检查的请求,如:m.sogou.com, 点击 GET 请求右侧的 Send 按钮, 在body部分可以看到返回的数据。

图5.jpg

  o点击请求部分底部的Tests,并从右侧检查点中,选择需要验证的点,如:验证返回的内容中包含"微信",点击"Response body: Contains string",则会在检验区域加入一行检查语句,并将要检查的字符串,改成"微信"。然后点击"Save"保存,将检查的请求添加到Collections中。

图6.jpg


作者:搜狗测试 张健   

来源:51Testing软件测试网原创



  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、TCP协议简介 因特网的运输层在应用程序断点之间传送应用程序报文,在这一层主要有两种传输协议 TCP和 UDP,利用这两种协议能够传输报文。TCP 协议的全称是 Transmission Control Protocol 的缩写,意思是传输控制协议,HTTP底层采用TCP 作为通信协议,这是因为 TCP 是一种可靠的协议,保证通讯的数据不丢失。TCP协议提供面向连接的服务,它能够控制并确认报文能够准确送达,并提供了拥塞机制来控制网络传输,因此当网络拥塞时,会抑制其传输速率。TCP,提供面向连接的服务,在传送数据之前必须先建立连接,数据传送完成后要释放连接。因此TCP是一种十分可靠...
            0 0 1522
            分享
          •   欧盟委员会今天宣布,将对苹果、Google和 Meta 如何遵守其新的《数字市场法》反垄断规则展开五项违规调查。欧盟反垄断主管玛格丽特-维斯塔格(Margrethe Vestager)在一份声明中说:"我们怀疑这三家公司提出的解决方案并不完全符合《数字市场法》。我们现在将调查这些公司是否合法,以确保欧洲数字市场的开放性和可竞争性"。"  特别是,委员会计划调查Google和苹果在其应用商店中的反转向规则,以及Google是否在其搜索引擎中自我引用了自己的服务。苹果公司的 iOS 浏览器选择屏幕以及 Meta 公司的广告定向"付费或同意模式"...
            0 0 706
            分享
          • 软件质量保证是为了保证软件系统或软件产品满足用户要求的质量而进行的有计划、有组织的活动,其目的是生产高质量的软件。在软件质量方面必须强调三个要点:软件必须满足用户规定的要求,与用户需求不一致的软件,就无质量可言。软件应遵循软件标准所定义的一系列开发标准,不遵循这些标准的软件,其质量难以得到保证。软件还应满足某些隐含的要求,例如希望有良好的可理解性、可维护性等,而这些隐含的要求可能未被写在用户规定的需求中,满足它的显性需求而不满足其隐含需求,那么该软件的质量是令人怀疑的。我们评价一款软件可以从以下一些角度进行正确性正确性是指软件按照需求正确执行任务的能力。 正确性也涵盖了“精确性方面。无庸质疑,...
            12 12 1381
            分享
          •   想必大家都有这样被老板灵魂发问的经历吧。  1. 当你负责的项目按时交付发布后,你老板问项目的测试质量怎么样啊?  2. 当你测试的项目上线后有用户曝出使用缺陷,你老板问你这个缺陷怎么没有测试出来呢?  如果测试工程师将测试工作理解为测试用例设计、测试执行,那么你大概率回答不好老板的发问,给不到老板想要的答案。  测试工程师作为项目质量把关者, 是产品质量保障至关重要的一环,测试设计和执行只是其职责的一部分,殊不知,测试质量度量也是测试工作尤为重要的一环。测试质量度量的范围不仅限于测试角色,也包括开发角色,甚至是产品角色。因为产品质量不是测试同学测出来的,而是产研测三方共同努力“测试”的结...
            0 0 229
            分享
          •   如今,对于智能汽车的用户们来说,通过后期的系统软件更新,汽车厂商们往往能够逐步完善和提升车主们的使用体验,为他们带来更多的全新功能。人体近日,智车派注意到,有消息指出,特斯拉已经向其内部员工推出了新的软件系统更新,本次更新中包括大量的全新功能和特斯拉汽车系统的UI升级。  根据介绍,本次系统更新之后,特斯拉汽车将可以为用户提供两种不同的字体大小,帮助使用者更好地阅读屏幕内容;在设置和控制菜单中添加了搜索功能,可以帮助车主们更快地查找到自己需要的信息;在其导航系统中改进了“兴趣点”,能够直接展示对应地区的图片和其它信息。此外,此次更新之后,特斯拉车主们还可以调整亮度和加速模式等设置,或执行切...
            0 0 954
            分享
      • 51testing软件测试圈微信