接口测试面试题和简答
问题
① 到底什么是接口(API)?
② 接口有哪些类型?
③ 接口的组成有哪些?
④ 请回答一下接口测试的意义。
⑤ 接口测试的常见请求有哪些?简述post和get的区别。
⑥ 接口测试用例设计需要注意什么?
⑦ 请简述接口测试的流程。
⑧ 接口响应状态码。
⑨ 请回答http和https协议的区别。
解答
1.到底什么是接口(API)?
答:有三种,分别是:
人类与电脑等信息机器或人类与程序之间的接口称为用户界面(UI接口);
电脑等信息机器硬件组件间的接口称为硬件接口;
电脑等信息机器软件组件间的接口称为软件接口。
2. 接口有哪些类型
答:接口一般分为两种:1.程序内部的接口 2.系统对外的接口
系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把 数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的。
程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。
3. 接口的组成有哪些?
答: URL(接口地址)、接口类型(get, post…)、状态码、请求头(客户端的一些请求信息记录在里面)、接口发送的数据(data)、返回数据(response)。
4. 请回答一下接口测试的意义。
答:主要是为了测试业务逻辑。接口测试属于软件测试中的一种专项测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
5.接口测试的常见请求有哪些?简述post和get的区别。
答:接口测试的常见请求:
GET:从服务器获取资源(一项或多项)
POST:在服务器新建一个资源
PUT:在服务器更新资源(客户端提供改变后的完整资源)
DELETE:从服务器删除资源
HEAD:请求获取由Request-URI所标识的资源的响应消息报头
TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT:保留将来使用
OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求
简述post和get的区别:
(1)post更安全(post利用body传参,比get的url传参安全,不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)
(2)post发送的数据更大(get有url长度限制)
(3)post能发送更多的数据类型(get只能发送ASCII字符)
(4)post比get慢
(5)post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作(淘宝,支付宝的搜索查询都是get提交),目的是资源的获取,读取数据。
6. 接口测试用例设计需要注意什么?
答:覆盖所有参数,正向用例
覆盖所有必填参数,正向用例
某一必填参数为空,逆向用例
必填参数基础上,少传一个参数
多传一个参数,逆向用例(讨论)
必填参数数据类型错误,数据值错误,逆向用例(例如整型变字符串)
任意组合可选参数正向用例
与业务逻辑相关的,用户身份认证为空或者错误,逆向用例
字段的唯_性校验,如插入数据字段不能重复,发送两次请求,查看第二次返回结果。
7. 请简述接口测试的流程。
答:接口文档→用例设计→执行用例(产出bug)→专项报告。
8. 接口响应状态码。
9. 请回答http和https协议的区别。
答:这里放链接:HTTP和HTTPS的区别是什么?