接口测试重点和难点总结

时间:2024-03-07 08:17:16

什么是接口测试?

定义:接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,对各种异常情况的容错处理的完整性和合理性,以及不用接口间的相互依赖关系等。

为什么要做接口测试?

1、接口测试位于测试的前期阶段,越早接入测试,发现问题的成本越低。
2、接口测试相对容易实现自动化持续集成,且相对UI自动化也更加稳定,可以减少回归测试人力成本与时间,缩短测试周期,支持后端快速迭代需求。接口持续集成是为什么能低成本高收益的根源。
3、现在多数系统采用前后端分离架构,从安全层面来说:
a.  为防止直接绕过前端,在篡改请求数据后发起请求,所以前后端有时需要进行同样进行校验,在这种情况下就需要从接口层面进行验证。
b.  前后端敏感数据传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如姓名、手机号、身份证、银行卡、登录密码等。
 

企业一般什么时候需要做接口测试?

a、项目初期,后端接口已开发完成,前端还没有开发完成,一般要做接口测试,校验后端逻辑。
b、版本迭代,项目新增需求,后端新开接口,需要做接口测试。
c、版本迭代,后端修改了接口,需要做接口测试。
 

接口测试需要具备的基本知识或能力

1、懂接口文档分析,会设计接口测试用例
2、懂常用协议,如http、 https
3、熟练使用一种接口测试工具,并能灵活运用,这里推荐JMeter(适合接口自动化)、Postman(适合接口调试)
4、会一门编程语言,推荐Java、Python3,有一定脚本调试能力。
 

如何做接口测试?

这就涉及到接口测试的具体流程:
1、找后端开发拿到接口文档,后端开发一般会使用swagger、smart-doc、Eolinker等工具在线生成接口文档。如果没有接口文档,可以使用浏览器F12 或 抓包工具Fillder抓取接口,自己编写接口文档。
2、熟悉需求说明书,分析接口文档。
3、编写接口测试用例或脚本。
4、进行接口测试,校验响应数据。
5、分析测试结果,编写接口测试报告。
 

标准的接口文档应该是什么样子?

标准的接口文档应该具备:接口名称、接口地址、请求方式、请求参数说明、请求示例、响应数据格式、响应参数说明、响应示例等。示例如下:
接口名称:查询用户手机号归属地
接口地址:http://apis.juhe.cn/mobile/get
响应格式:json/xml
请求方式:get
请求示例:http://apis.juhe.cn/mobile/get?phone=13429667914&key=您申请的KEY
接口备注:您也可以通过 https://www.juhe.cn/market/product?id=10015 下载归属地离线数据包
请求参数说明:
 
响应参数说明:
 

 

JSON响应示例:

{ "resultcode":"200", "reason":"Return Successd!", "result":{ "province":"浙江", "city":"杭州", "areacode":"0571", "zip":"310000", "company":"中国移动", "card":"" } }

 

接口测试的重点和难点是什么?

1、会分析接口文档。(重点)
2、对前、后台的数据交互过程、后端业务处理逻辑非常清楚。(难点)
3、对关联接口,要清楚接口之间的数据依赖关系。(难点)
4、工具的灵活使用。(重点)
 

接口测试用例设计,需要考虑哪些点?

换句话说,接口测试,需要测试什么呢?下面给大家画了一个思维导图,便于理解和记忆。

 

 说明:一般测试需要在开发编码阶段完成接口用例设计或接口测试脚本开发。对测试用例需要进行定期review,随着对系统认识的加深,可以不断提高用例或脚本精度。另外,一旦测试需求发生变化,测试用例或脚本必须重新维护。

接口质量评估标准有哪些?

1、业务功能覆盖是否完整

2、业务规则覆盖是否完整

3、参数验证是否达到要求

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

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

6、代码覆盖率是否达到要求(这个可以让运维部署静态代码分析工具,如sonar解决)

7、性能指标是否满足要求

8、安全指标是否满足要求

接口测试持续集成

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

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

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

3、结果校验:加强自动化校验能力,如数据库信息校验。

4、结果展示:更加丰富的结果展示、趋势分析、质量统计和分析等。

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

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

以上内容都需要一个展示平台,所以,自动化测试平台的开发将成为趋势。

说明:本文部分内容引用自 https://www.cnblogs.com/xiaowenshu/p/10346903.html ,转载需说明出处,谢谢!