1、GET方式和POST方式的区别?
-
对请求参数的处理方式不同(最直观的区别):
GET请求:请求的数据会附在URL之后,以“?”分隔URL和传输数据,如果有多个参数使用“&”连接。URL采用的是ASCII编码格式,而不是Unicode编码格式。即所有的非ASCII字符都要在编码之后传输。 POST请求:POST请求会把请求参数数据放置在HTTP请求包的Body数据中,数据包的形式可以是“参数名1=参数值1&参数名2=参数值2”,也可以是JSON数据格式。
-
传输数据的大小不同:
GET:特定浏览器和服务器对URL的长度有限制。使用GET方式传输数据时会受到URL长度的限制。 POST:不是通过URL传输,在理论上数据的大小不受限制。
-
安全性不同:
POST:安全性较高。需要抓包才能获取到数据。 GET:在地址栏中可以看到请求数据。
2、为什么要做接口测试?
- 传统的测试方法成本急剧增加,且测试效率大幅下降;
- 可以发现很多页面操作中发现不了的Bug;
- 可以检查系统的异常处理能力;
- 可以检查系统的安全性、稳定性;
3、如何开展接口测试?
- 获取待测试接口的相关数据。一般由开发人员提供接口文档。文档中主要包含几个基本要素:接口地址、接口参数及对应的说明、请求当时、返回数据示例、返回码解释等。
- 充分理解接口逻辑。从不同角度理解接口所要实现的功能、数据的处理逻辑和存储逻辑。
- 设计接口测试用例。
- 使用工具模拟发送接口请求,检查返回包数据。(Postman)
- 对比预期结果与实际结果,判断接口测试用例的通过性。(可通过Tests添加断言)
4、接口文档主要包含内容:
- 接口功能:对接口作用的大概描述;
- 接口URL:接口的请求地址;
- 请求方法:一般的HTTP的请求方法是POST/GET;
- 请求参数:包含参数类型、限制条件、是否必填、默认值、特殊要求等;
- 返回包数据的示例:
- 返回码的解释:比如返回1000表示必填参数为空等;
5、怎么设计接口测试用例?
-
接口请求参数组合形式:参数校验;
参数校验: 1、逻辑梳理: 2、参数本身、参数值的类型、参数值的长度、参数值SQL注入; 3、设计用例框架; 4、生成具体的用例数据;
-
接口的功能是业务逻辑的体现:逻辑校验;
6、接口测试用例包含属性:
ID、模块、用例标题、接口名称、接口地址、请求方式、请求头、请求数据类型、请求参数、预期结果、实际结果等
7、cookie、session、token的区别:
- cookie数据主要存储在用户浏览器中,session主要存放在服务器中,token是一种鉴权码(一般情况下登录后才可以获取到token,再每次请求时都需要附带token参数);
- cookie不是很安全,但session访问较多时,会影响系统性能;
- 可以将重要私密信息存放在session,其他存放在cookie中;
8、接口测试执行中比对数据库?
接口返回值的数据来源于数据库,接口对数据的操作还要进行深层次的数据库检查。
9、HTTP协议的理解:
超文本传输协议:端口为80,请求、响应两大部分组成。请求(请求头、请求行、请求正文);响应(响应头、响应行、响应正文)。
10、响应状态吗:
-
1xx:指示信息–表示请求已接受,继续处理
-
2xx:成功–表示请求已被成功接收、理解、接受
-
3xx:重定向–要完成请求必须进行更进一步的操作
-
4xx:客户端错误–请求有语法错误或请求无法实现
-
5xx:服务器端错误–服务器未能实现合法的请求
常见的状态码: 200:服务器成功返回; 201:用户新建或修改数据成功; 202:表示一个请求已经进入后台排队; 204:用户删除数据成功; 400:客户端请求语法错误; 401:用户没有权限; 403:用户得到授权,但访问被禁止; 404:请求资源不存在; 406:用户请求的格式不可得; 410:用户请求的资源被永久删除; 500:服务器发生错误; 503:服务器当前不能处理该问题,一段时间后可能恢复;
11、 列举接口测试中遇到的Bug:
12、接口测试需要注意点:
- 接口返回值中包含图片地址:需要手工去校验图片的显示、大小、内容等;
- 接口测试查询功能后,数据返回的排序;
- 输入参数默认值、必填项、格式、长度、大小、特殊字符等;
13、接口测试后返回结果对比内容:
- 返回状态码:
- 响应数据与预期结果是否一致:
14、接口测试使用的工具:(主要接触到Postman)
15、抓包工具使用(主要Fiddler)
16、对JSON数据的理解:
- 一种数据报文格式:
- 由键值对和数组两种格式组成:
- 可以通过在线网站进行校验:
17、Postman使用流程:
- 编写接口测试用例;
- 创建文件集合目录;
- 设置所需的全局变量、环境变量等;
- 在各个集合中录入测试用例;
- 在Tests中添加用例对应的断言;
- 导出测试用例使用Newman运行生成对应的接口测试报告;
18、设置环境变量/全局变量的作用:
- 测试方便,使用相同变量值时直接调用变量名;
- 调用方式:{{变量名}};
19、在接口测试中对关联的理解:
- 把上一个接口返回值的部分截取,作为下一个接口的传入参数,能够让接口串联运行:
20、Postman支持的协议类型:HTTP/HTTPS
21、Postman参数化的方式:
- 内建变量:
- js脚本:
- 导入csv、json文件:
22、Newman运行脚本生成报告的命令:
Newman run 脚本名称 -r 格式 --reporter-html-export 生成的报告