肖sir__ 接口测试面试题(12.2)
1.postman接口测试,它有一个功能可以设置参数化,你有用过吗
(1)有
(2){{}}
a、设置环境变量
b、在run中通过导入csv文件引用变量
2.你测试过哪些接口
接口类型: http 接口 webserver 接口
项目中接口:登录接口;添加用户接口;查询栏目接口;文章管理接口,删除用户接口 删除栏目接口;
a.基础资料上传接口、b.商品下架接口、c.商品资料变更接口、d.店铺基础信息上传接口、e.商品价格、库存同步接口、f.获取电商订单信息接口、g.调换货接口、h.退货接口、i.会员资料获
3.有做过接口测试吗?接口测试你们是怎么测的?(postman)
(1)做过
(2)a、讲解接口测试流程:
(1)情况一:有接口文档的情况
步骤:
(一)从开发哪里拿到接口文档
(二)接口文档中有接口的参数,
(三)根据接口文档编写接口用例
(四)评审接口用例
(五)部署环境
(六)使用接口测试工具进行接口测试
(七)有bug就通过bug管理工具提交给开发修改
(八)修改好bug,在验证bug,在关闭bug
(九)在输出接口测试报告
(2)情况二:没有文档的情况
(一)通过fiddler抓包工具抓接口
(二)抓接口的参数,
(三)根据接口文档编写接口用例
(四)评审接口用例
(五)部署环境
(六)使用接口测试工具进行接口测试
(七)有bug就通过bug管理工具提交给开发修改
(八)修改好bug,在验证bug,在关闭bug
(九)在输出接口测试报告
讲解方法b:通过postman工具来测试:比如
我做的借款接口、打开postman,选择post请求,因为入参,填写接口路径(协议+ip/域名+接口路径),点击body选择入参格式,输入参参数如下:
{
"code": "ABCDEF",
"method": "loanCalculate",
"data": {
"loanAmount": 100000,
"loanTerm": 15
},
"sign": "{签名规则参考 接口请求签名章节}",
"timestamp": 1500693926
}
参数输入好以后,在test中进行断言,一般断言响应状态码、响应内容、响应时间
tests["Body is correct"] = responseBody === "response_body_string";
tests["Response time is less than 200ms"] = responseTime < 200;
tests["Status code is 200"] = responseCode.code === 200;
选择一个环境,点击send发送;
在先看响应头和响应体内容:根据业务逻辑:
成功返回:
{
"code": "success",
"message": "请求成功",
"result": {
"repayAmount":115000,
"receiveAmount":100000,
"interestFee":10000,
"serviceFee":5000,
"serviceFeeDesc":""
}
}
如果请求失败则返回:
{
"code": "error",
"message": "验签失败"
}
关联接口、依赖接口、接口参数
4.多接口怎么测(postman里面有一个批量处理)
(1)将多个接口放至一个项目文件夹中,点击run,选择环境变量、修改运行次数和延迟秒数、选中csv文件,点击运行进行测试
5.get和post请求的区别
a、get的参数在url上,post的入参在body中
b、get的请求速度高于post
c、post的请求的安全性高于get请求
d、post请求参数的大小不限制,get的请求参数大小有限制
e、post的请求参数格式可以多种,get的请求参数就只有字符格式
f、get请求可以被缓存,post不会被缓存
6.接口请求的基本结构
1、请求协议
2、请求方法
3、请求地址(域名和ip地址)
4、请求路径
5、请求的入参格式
6、接口请求的端口号
7.业务中接口测试的业务请求是怎样的?
比如:登录接口:http://cms.duoceshi.cn/manage/loginJump.do
更改入参参数:
userAccount:
loginPwd:
业务:
a、登录成功,
b、登录帐号不存在!
c、登录帐号不能为空!
d、登录密码不正确!
e、"登录密码不能为空!",
8.调用接口异常有哪些测试点?
1、提交时快读多次点击,频繁添加删除
2、幂等校验(或重复提交)
3、连接超时或者失败时需重试
4、缓存测试(缓存失败、缓存溢出、)
5、多参数
6、少参数
9.postman是怎么处理接口超时的?
a、如何测试接口超时:
b、超时问题定位:定义超时时间、重试机制、分析日志(显示tineout)和监控,
11.一个完整的请求有哪几部分组成?
请求头 请求体 响应头 响应体
12.请求方式有哪些?
get post put delete
13.请求正文的文本格式?
form-data
x-www-form-urlencode
raw
json
text
binary
14.请求头包含哪些内容
1. User-Agent:标识客户端使用的浏览器和操作系统信息。可以通过$_SERVER['HTTP_USER_AGENT']获取。
2. Accept:指定客户端能够处理的内容类型,即可接受的媒体类型。可以通过$_SERVER['HTTP_ACCEPT']获取。
3. Content-Type:指定请求体中的数据格式类型。常见的取值有application/json、application/x-www-form-urlencoded等。可以通过$_SERVER['CONTENT_TYPE']获取。
4. Authorization:用于进行身份验证的凭证信息。常见的取值有Bearer Token、Basic Authentication等。可以通过$_SERVER['HTTP_AUTHORIZATION']获取。
5. Cookie:包含来自客户端的Cookie信息。可以通过$_SERVER['HTTP_COOKIE']获取。
6. Referer:指示当前请求是从哪个URL页面发起的。可以通过$_SERVER['HTTP_REFERER']获取。
7. Host:指定服务器的域名或IP地址。可以通过$_SERVER['HTTP_HOST']获取。
8. X-Requested-With:指示请求是否由Ajax发起的。通常在Ajax请求中会设置该头部字段,取值为"XMLHttpRequest"。可以通过$_SERVER['HTTP_X_REQUESTED_WITH']获取。
9. Content-Length:指定请求体的长度。可以通过$_SERVER['CONTENT_LENGTH']获取。
10. Cache-Control:控制缓存行为的指令。用于指定客户端和代理服务器如何缓存响应。可以通过$_SERVER['HTTP_CACHE_CONTROL']获取。
15. 响应头包含哪些内容
HTTP/1.1:表示超文本传输协议 版本为1.1版本 URL统一资源定位符
响应状态:200
Server:服务器名称 Server: Apache/2.4.1 (Unix)
Set-Cookie:设置HTTP Cookie Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1
Content-Type:设置响应体的MIME类型 Content-Type: textml; charset=utf-8
Transfer-Encoding:设置传输实体的编码格式,目前支持的格式: chunked, compress, deflate, gzip, identity
Date:设置消息发送的日期和时间 Date: Tue, 15 Nov 1994 08:12:31 GMT #接口响应时间
16、常见的http响应状态码
200 (状态码)ok
301 (资源 网页等)被永久转移到其他URL
404 请求的资源网页等不存在
500 内部服务器错误
18.postman 如何设置断言
在tests中设置断言
断言状态码
断言时间
断言响应内容
19.postman 如何设置全局变量和环境变量
20.接口测试用例设计主要考虑哪些方面
21.fiddler如何抓包
22.fiddler如何设置断点,为什么设置断点
在rules中开启断点,关闭断点
1、before response:这个是打在request请求的时候,未到达服务器之前 (before之前)
2、after response:也就是服务器响应之后,在Fiddler将响应传回给客户端之前。
命令行方式:
修改Request:bpu (拦截发给指定服务器的请求)
清除断点拦截:bpu
修改Response:bpafter(拦截指定服务器返回的session)
清除断点拦截:bpafter
接口测试可以不需要管前端的,主要测后端的功能有一个程序出错了,大致猜出可能在某处会出错,就在那里下一个断点。调试程序,执行到那里,程序会停下来,这时可以检查各种变量的值,然后按步调试运行,观察程序的流向及各个变量的变化,便于快速排错。
23.fiddler如何手机代理,抓app包
抓取安卓手机(wifi 修改代理)
抓取ios手机
24. 开发者工具F12如何查看接口请求
1、在相应界面点击F12
2、打开F12窗口以后,点击“网络”页签。
3、然后选择相应的接口
4、在右侧就可以看到请求url、请求方法和状态码了。
5、在接口连接上面也可以看到。