1.什么是接口?
接口主要用于系统与系统之间以及程序内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点也就是协议,来进行数据之间的交互。
2.接口都有哪些类型?
接口一般分为两种:1.程序内部的接口 2.对外提供的接口
对外提供的接口:如:微信支付接口, 支付宝支付接口等
程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如电商系统,有登录模块、提交订单模块等等,要支付就必须先登录,那么这两个模块就得有交互,系统内部就会通过一个接口进行数据交互。
接口的分类:1.webservice接口 2.http协议(api接口)
webService接口是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候可以借助SoapUI工具进行调用及测试。
api接口是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get,post,put,delete等四种常用请求方式。
json是一种通用的数据类型,所有的语言都认识它。(json的本质是字符串,它与其他语言无关,只是可以经过稍稍加工可以转换成其他语言的数据类型,比如可以转换成Python中的字典,key-value的形式。)
3.接口的本质及其工作原理是什么?
接口你可以简单的理解他就是发起请求获取响应数据,工作原理就是URL通过get或者post请求向服务器发送一些东西,然后得到一些相应的返回值,本质就是数据的传输与接收。
4.什么是接口测试?
百度百科的概述为: 接口测试是测试系统组件间接口的一种测试。
接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。
测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
简答的说就是通过URL向服务器或者其他模块等,传输我们想传输的数据,然后看看他们返回数据的是不是预期想要的。
5.为什么要做接口测试?
5.1 越底层发现bug,它的修复成本是越低的。
5.2 前端随便变,接口测好了,后端不用变,前后端是两拨人开发的。
5.3 检查系统的安全性、稳定性,前端传参不可信,比如电商购物系统,前端价格无法实现传入数据为-1元,但是通过接口可以传入-1元。
5.4 如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以应对复杂度较高的测试场景, 负载度越高接口测试效果月好
5.5 接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。
5.6 现在很多系统前后端架构是分离的,从安全层面来说:
(1)、只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。
(2)、前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。
6.怎样做接口测试?
由于目前大部分项目前后端分离,调用接口主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI、java+httpclient/TestNG、robotframework等。
-- 也可以用代码实现接口自动化,框架和UI自动化差不多,发送请求用断言来判断
7.接口测测试点是什么?
目的:测试接口的正确性和稳定性;
原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程;
重点:检查数据的交换,传递和控制管理过程,还包括处理的次数;
核心:持续集成是接口测试的核心;
优点:为高复杂性的平台带来高效的缺陷监测和质量监督能力,平台越复杂,系统越庞大,接口测试的效果越明显(提高测试效率,提升用户体验,降低研发成本);
用例设计重点:通常情况下主要测试最外层的两类接口:数据进入系统接口(调用外部系统的参数为本系统使用)和数据流出系统接口(验证系统处理后的数据是否正常);
PS:设计用例时还需要注意外部接口提供给使用这些接口的外部用户什么功能,外部用户真正需要什么功能.
8. 对接口测试而言,持续集成接口自动化是核心内容, 接口自动化包含以下内容:
8.1 流程方面:在回归阶段加强接口异常场景的覆盖度,并逐步向系统测试,冒烟测试阶段延伸,最终达到全流程自动化。
8.2 结果展示:更加丰富的结果展示、趋势分析,测试数据统计和分析等
8.3 问题定位:报错信息、日志更精准,方便问题复现与定位。
8.4 结果校验:加强自动化校验能力,如数据库信息校验。
8.5 代码覆盖率:不断尝试由目前的黑盒向白盒下探,提高代码覆盖率。
8.6 性能需求:完善性能测试体系,通过自动化的手段监控接口性能指标是否正常。
9. 接口测试质量评估标准:
-- 业务功能覆盖是否完整
-- 业务规则覆盖是否完整
-- 参数验证是否达到要求(边界、业务规则)
-- 接口异常场景覆盖是否完整
-- 接口覆盖率是否达到要求
-- 代码覆盖率是否达到要求
-- 性能指标是否满足要求
-- 安全指标是否满足要求
更多关于软件测试培训的问题,欢迎咨询千锋教育在线名师。千锋教育拥有多年IT培训服务经验,采用全程面授高品质、高体验培养模式,拥有国内一体化教学管理及学员服务,助力更多学员实现高薪梦想。