• 0
  • 0
分享
  • API接口测试——软件测试圈
  • 北极 2021-11-09 14:26:02 字数 1542 阅读 1292 收藏 0

引言:

不知不觉中成为一名测试攻城狮已将近7年之久,在这期间做过不少API接口测试。最早接触的API接口在项目中称之为(webservice),期间走了不少弯路。也收获了不少的经验,现分享下在测试的路上走过的坑。

第一阶段小白初体验:

初始接触API是在11年,第一次接触API接口一脸的懵逼,很茫然不知如何下手测试,对http网络协议也不了解。后来由研发同学提供对应接口web界面,测试时进入对应接口界面,在textbox输入对应参数值提交后查看返回值。但刚幵始一脸懵逼,返回值也不清楚是否正确,每次都是把研发同学叫过来直接看结果。严重耽误了效率,后来不断的自我反思,在研发同学的不断讲解API知识。不断前行最终自己可以独立测试,虽然中间过程也比较坑。比较囧(在这里特别感谢研发的同学非常耐心的讲解API知识,也非常感谢大芽同学的帮助)

第二阶段菜鸟阶段

经过不断的摸索和不断学习API知识,提高自己。从http网络协议入手,到一次网络请求的工作过程。如下图

1.png

HTTP网络协议,目前常用的请求类型:POST;GET;PUT等。目前用的比较多的是POST,GET这2种。一般涉及到写操作使用POST请求,只是读操作使用GET请求。

通过不断测试API接口和阅读API接口开发文档,总结经验设计API功能测试用例。例如初始时设计发表评论接口:设计Case如下

  1. 有Userid,有评论内容;

  2. 无Userid,有评论内容;

  3. 有Userid,无评论内容;

  4. 无Userid,无评论内容;

  5. 有Userid,有评论内容(查询数据库,是否存储一致);

  6. 有Userid,评论内容等于限制数7.有Userid,评论数大于限制数。

用例设计完成,剩下的就是执行用例。不断的总结经验,根据发现的Bug,补充自己的测试用例。在测试过程中发现了Bug,尽量描述全。把请求的参数,以及返回的参数全贴到Bug描述里面,这样研发在复现Bug,也很节省时间。这样也是提高了大家的工作效率。使用Excel比较不错,设计用例时候排列组合就好。

第三阶段工具运用:

在繁重的测试过程中发现这种由研发提供的web界面方式效率比较低下,回归测试时非常不便捷。测试数据每次都要重新输入,增加了大量的重复工作。每次回归测试都需要消耗大量的时间,主要是测试数据的管理在WEB页面没办法保存。通过网上查找和同事咨询,引入了接口测试工具SoapUI。在SoapUI中创建API的项目,添加对应API接口。创建API接口测试用例,把测试数据配置好就可以了。在执行测试任务时,执行对应的API接口测试用就可以了。使用SoapUI后重复输入的工作解放了出来。提高了非常不错的工作效率,节省了不少工期.

第四阶段菜鸟业务提升

在测试过程发现自己设计的用例,数量上太过于庞大。而且大多数用例都是用来测试接口本身,反而忽略了接口本身的业务。

例如login接口,设计功能用例:

  1. 有帐号,有密码;

  2. 有帐号,无密码;

  3. 无帐号,无密码;

  4. 无帐号,无密码;

  5. 有帐号,有密码(登录用户,与数数据库校验一致)。

但实际的用户可不单单一类用户,按照注册来分可以分为新注册用户,老用户。按照权限来分比如京东,分为普通会员,铜牌会员、银牌会员、金牌会员、钻石会员。所以实际测试需要测试这2大类用户登录。这个时候需要提炼出实际业务测试用例,实际的业务有的是不单调一个接口,是多个接口组成。中间还涉及到B接口需要从A接口获取参数。

设计业务用例:

  1. 新注册会员登录;

  2. 普通会员(老用户)登录;

  3. 铜牌会员登录;

  4. 银牌会员登录;

  5. 金牌会员登录;

  6. 钻石会员登录;

  7. 非注册用户登录。

确定了测试用例,剩下的就按照测试用例执行就可以了。


作者:collar

原文链接:https://www.cnblogs.com/collar/p/6402726.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、等待的作用等待的作用在实际自动化实现过程中,都会添加等待来完善自动化测试的代码。自动化测试,是交由机器来执行的一种测试手段,用于提升测试效率,意味着每一次的自动化测试都 需要有非常高的成功率,才可以达到提升效率的作用。在自动化测试中,其实就是通过代码,来执行测试的流程,也就意味着机器知己对页面元素来进行操 作,如果说因为页面加载速度过慢,导致元素无法被第一时间找到,则报错,停止本次自动化测试, 通过添加等待的方法,让代码在运行时,会进行等待页面加载的操作,以便于更好的进行元素查找。我们平常用到的有三种等待方式:强制等待隐式等待显示等待二、三种等待方式1:强制等待第一种也是使用最简单的一种办...
            0 0 1416
            分享
          •   在日常的测试工作中,不知道大家是否会有梳理自己测试业务的习惯。我个人觉得这个事情是值得做的,最好还可以培养成一个习惯。  一、为什么要梳理业务?  因为在业务测试中,作为测试人员,熟悉负责的业务是非常重要的,而通过阶段性的梳理总结,可以让你的业务知识系统化的沉淀下来。  当被问起这个业务系统的测试重点在哪里?难点如何克服?为什么要这样设计等等问题,可以有条不紊的进行输出。  又或者,当你任务需要交接,或者需要别人支援你的业务,你可以自信的把文档丢过去,拍拍胸脯说:看一遍你就知道了。  同样大家平时都在做业务,同样并没有多少别的技术层的产出,这也是为什么有人能拿A,有人却只能拿C的原因之一。...
            0 0 1097
            分享
          • 在编写 Junit 测试时,我采用了同一套格式。如此,对于测试用例我就可以遵循这套格式进行编写和阅读,使所有的测试都整体划一。这种格式模板可以帮助我更快的编写测试,提高工作效率。今天我就与大家分享我的这套格式模板。(译者评:与我在测试建设原则中提出的继承原则相同,都是在进行一项测试工作之前,将公共的进行提取,统一格式模板,然后在以后的测试活动中都继承这套模板开展。)文件格式首先,在项目的测试包下新建一个测试文件/测试类,并且创建测试方法。在编写测试文件/测试类时,所有的测试文件/测试类都以 Test 结束,这样会容易理解其是一个测试文件/测试类,也方便后期维护时查看,编辑。例如一个名字为&nb...
            14 14 1910
            分享
          •   讲到这个接口测试的原理的话,我们先要搞清楚,我们去访问客户端跟服务端它之间交互的一个原理是什么?  首先给大家举一个例子,比如我在自己的电脑上,输入www.zhihu .com  在知乎里面我去输入一个(软件测试),这个是我要搜索的一个内容。点击搜索一下,我就得到了相关Python的一些搜索的结果,那么我在执行这么一个过程的时候,那么它做了一个什么样的操作呢?  我们的客户端和服务端,到底有一个什么样的交互跟数据的传递呢?我们用画图的方式来解释一下。(图糙理不糙)  我们在知乎搜索里面是不是输入了一个软件测试,我们把这个输入的Python内容是不是传给了服务端了。  1.通过网络把我在PC...
            0 0 1064
            分享
          •   作为一名技术人,工作几年后越发觉得,决定你走到一定位置上关键的因素不仅仅是技术能力,情商更是占据了很大一部分。  反面-性格决定命运  俗话说性格决定命运,这是有一定道理的。  拿我身边的例子来说,李哥,在开发组工作了4年多,一直工作态度认真,但有一个毛病——情绪比较容易激动。  年后回来,因为一个问题导致他的工作脱了两天,期间他也跟相关同事沟通过,但是没解决。反馈给pm,pm没有帮忙协调。  一直等到快要上线的时候pm才帮忙处理了相关问题,但结果可想而知——来不及了,需要李哥加班才能解决问题。  不仅如此,这位pm的态度也不是很友好,认为问题出在李哥身上,一系列不如意的交涉后,李哥一气之...
            0 0 997
            分享
      • 51testing软件测试圈微信