• 13
  • 13
分享
  • 什么是接口测试?为什么要做接口测试?——软件测试圈
  • 北极 2021-08-11 09:56:26 字数 2395 阅读 1022 收藏 13

1.什么是接口测试?为什么要做接口测试?

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

由于如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,所以就要做接口测试。同时,接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。现在很多系统前后端架构是分离的,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易),需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

2.后端接口测试测什么?

从下面这张图可以看出后端接口测试主要测了些什么:

1.png

3.怎么做接口测试?

一般情况下,由于我们项目前后调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送和接收。所以我们下面整理了一下使用Jmeter工具进行http接口测试。

3.1开发接口测试案例的整体方案

第一步:分析出测试需求,并拿到开发提供的接口说明文档;

第二步:从接口说明文档中整理出接口测试案例,里面要包括详细的入参和出参数据以及明确的格式和检查点;

第三步:和开发一起对接口测试案例进行评审;

第四步:结合开发库,准备接口测试案例中的入参和出参数据,并整理成csv格式的文件;

第五步:结合接口测试案例文档和csv格式的数据文档,做接口测试案例的自动化案例开发。

3.2接口自动化适用场景

目前设计的自动化接口测试案例有两个运行场景:

(1)测试前置、开发自测:一个新的自动化接口测试案例开发完成后,直接发给接口对应的开发,安排在开发本地环境执行,一旦开发确认完成接口开发,就开始执行接口测试案例,基本上可以实时拿到测试结果,方便开发快速做出判断。(开发本地运行的方式就是打开JMeter工具,导入JMX文件,开始执行可。)

(2)回归测试:开发本地测试通过后,或整个需求手工测试通过后,把自动化的接口测试案例做分类整理,挑选出需要纳入到回归测试中的案例,在持续集成环境重新准备测试数据,并把案例纳入到持续集成的job中来,这些用于回归的接口测试案例需要配置到持续集成平台自动运行。

3.3接口测试环境准备

Jdk1.6或以上:http://www.oracle.com/technetwork/java/javase/downloads/index.html

Jmeter,下载地址:http://jmeter.apache.org/download_jmeter.cgi

插件的下载安装地址:http://www.jmeter-plugins.org/

3.4创建工程

1.打开Jmeter:下载好Jmeter后,双击bin目录下的jmeter.bat文件:

2.jpg

2.添加线程组:在“测试计划”上点击鼠标右键-->添加-->threads(Users)-->线程组,添加测试场景设置组件,接口测试中一般设置为1个“线程数”,根据测试数据的个数设定“循环次数”。

3.png

3.添加“HTTPCookie管理器”:

4.png

4.添加“Http请求默认值”组件,当被测系统有唯一的访问域名和端口时,这个组件很好用:

5.png

5.在“HTTP请求默认值”组件配置页面,填写被测系统的域名和端口,http请求的实现包版本以及具体协议类型,线程组里的所有“HTTPSampler”可默认使用此设置。

6.jpg

6.在“线程组”里添加“HTTP请求”的Sampler

7.png

7.在HTTP请求设置页面,录入被测接口的详细信息,包括请求路径,对应的请求方法,以及随请求一起发送的参数列表:

8.jpg

8.设置检查点:在被测接口对应的“HTTP请求”上,添加“响应断言”:

9.png

9.在设置页面上添加对相应结果的正则表达式存在性判断即可:

10.jpg

10.添加监听器:方便查看运行后的结果

11.png

运行结果:

12.jpg

上述步骤完成了一个简单测试案例的创建,复杂测试案例均在此基础上扩展完成。使用Jmeter工具开发的接口测试案例,一个子系统建议放在同一个“测试计划”中,流程测试可以通过“线程组”来区分,这样也便于设定不同的测试数据个数。比较独立的接口,可以统一放在一个线程组内,顺序完成测试。

流程性接口的测试:如果要测试的接口可以组成一个流程,只需要顺序添加多个“HTTP请求”的Sampler,各请求之间可以提取需要在上下文传递的数据作为参数,以保证流程中数据的一致性。

4.接口测试持续集成

对接口测试而言,持续集成自动化是核心内容,通过持自动化的手段我们才能做到低成本高收益。目前我们已经实现了接口自动化,主要应用于回归阶段,后续还需要加强自动化的程度,包括但不限于下面的内容:

  1. 流程方面:在回归阶段加强接口异常场景的覆盖度,并逐步向系统测试,冒烟测试阶段延伸,最终达到全流程自动化;

  2. 结果展示:更加丰富的结果展示、趋势分析,质量统计和分析等;

  3. 问题定位:报错信息、日志更精准,方便问题复现与定位;

  4. 结果校验:加强自动化校验能力,如数据库信息校验;

  5. 代码覆盖率:不断尝试由目前的黑盒向白盒下探,提高代码覆盖率;

  6. 性能需求:完善性能测试体系,通过自动化的手段监控接口性能指标是否正常。

5.接口测试质量评估标准

  1. 业务功能覆盖是否完整;

  2. 业务规则覆盖是否完整;

  3. 参数验证是否达到要求(边界、业务规则);

  4. 接口异常场景覆盖是否完整;

  5. 接口覆盖率是否达到要求;

  6. 代码覆盖率是否达到要求;

  7. 性能指标是否满足要求;

  8. 安全指标是否满足要求。


作者:Zoraliu

原文链接:https://www.cnblogs.com/zoraliu66/p/6743126.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、web测试流程1、需求分析,了解具体需求2、测试准备:原型图、效果图、需求文件、测试用用例、用例评审、各种测试数据准备3、测试环节:接受版本开始执行1)冒烟测试:对版本质量的控制以及此版本是否具备测试条件;2)UI测试:核对效果图3)功能测试:核对需求文件测试用例,对功能进行验证4)兼容测试:各个浏览器,手机是否兼容5)性能测试,服务器接口,多线程等压测6)安全测试7)易用性测试:界面与交互性测试,符合交互规范,用户体验良好,使用方便快捷8)提交bug,争议bug评审,回归测试9)自动化测试a、ui自动化测试:一般使用python+selenium进行ui自动化测试4、发布功能,上线验证,...
            0 0 1213
            分享
          •  前端的痛苦作为前端,最痛苦的是什么时候?每个迭代,需求文档跟设计稿都出来了,静态页面唰唰两天就做完了。可是做前端又不是简单地把后端吐出来的数据放到页面上就完了,还有各种前端处理逻辑啊。后端接口还没出来,我就得边写代码边测前端效果,又没有真实数据。有人建议用 Mock 工具,可是每个接口都要自己写 Mock 规则,这得浪费多少时间呀。等到后端好不容易把接口写出来了,一对接联调,好多字段的数据又跟我 Mock 的数据对不上,又得重新改代码。每个迭代都是一场折磨。就是那种,明明知道这个地方整个团队都可以更有效率,但偏偏就是做不到的无力感。黎明的希望直到有一天,我遇到这个神器。我的效率提升...
            12 11 1105
            分享
          •   据路透社、美联社报道,洛杉矶联合学区教育委员会当地时间周二完成一项投票,决定禁止其 42.9 万名学生使用智能手机,以避免孩子们受到干扰以及社交媒体带来的影响。  这项禁令的目标是在学生的“整个在校时间(包含午休)”内强制执行。  洛杉矶联合学区教育委员会是全美第二大学区委员会。该委员会以 5:2 的投票结果批准了一项决议,将在 120 天内制定一项禁止学生使用手机和社交媒体平台的政策,并于 2025 年 1 月生效。  提出该决议的董事会成员尼克?梅尔沃恩(Nick Melvoin)表示:“我认为我们将成为先锋,学生、整个城市和国家都将因此受益。”他表示,“我们的学生就像成年人一样沉迷手...
            0 0 261
            分享
          •   据报道,通用汽车公司一位高管表示,该公司正在探索ChatGPT的用途,作为该公司与微软公司开展广泛合作的一部分。  通用汽车副总裁斯科特 · 米勒(ScottMiller)上周说:“ChatGPT的应用将无处不在。”  米勒说,该聊天机器人可被用来获取关于如何使用车主手册中车辆功能的信息,或车库门代码等编程功能,或从日历中整合日程安排。  当地时间上周五,通用汽车发言人表示:“聊天机器人应用于汽车中这种转变不仅只是语音指令进化这单一功能,而是意味着客户可以期待他们未来的汽车整体上在新兴技术方面功能更强大更新颖。”  报道称,通用汽车正在研发一款使用ChatGPT人工智能模型的虚拟个人助理。...
            0 0 866
            分享
          •   1.用例评审的目的  ·为了减少测试人员执行阶段做无效工作,执行无效case,提交无效缺陷(可以友情提醒研发同学,讲到自己负责的相关模块时,注意下是否存在异议点)  · 为了避免三方(产品、研发、测试)需求理解不一致;  · 为了每个测试人员的质量标准与项目要求标准达成一致。  2.评审前的准备工作  2.1用例编写  需求评审结束后,可以把需求拆分为功能点  测试点梳理时,要关注横向逻辑,即功能点本身,更要关注纵向逻辑,即业务流。  工具:建议用XMind  优点:用画思维导图的方式,逻辑清楚,便于评审人员(产品和开发人员)快速查看,评审效率高。  具体用什么工具方法...
            0 0 915
            分享
      • 51testing软件测试圈微信