常见的接口面试题目:
1.postman接口测试,它有一个功能可以设置参数化,你有用过吗? 用过 (1)新建一个csv.文件 填写user、pwd 新建一个全局变量 user、pwd 点击body==form-data 填写user、pwd 点击run 导入csv.件 查看结果 (2){{}} 使用变量 ,在环境变量中添加值
2.你测试过哪些接口? 接口类型: http 接口 webserver 接口
项目中接口:用户登录接口;添加用户接口;查询栏目接口;
3有做过接口测试吗?接口测试你们是怎么测的 做过 首先是从开发那里拿到API接口文档,了解接口业务、包括接口地址、请求方式,入参、出参,token鉴权,返回格式等信息。 然后使用Postman或Jmeter工具执行接口测试 一般使用Jmeter的步骤是这样的: 1)新建一个线程组。 2)然后就是新建一个HTTP请求默认值。(输入接口服务器IP和端口) 3)再新建很多HTTP请求,一个请求一个用例。(输入接口路径,访问方式,参数等。) 4)然后创建断言和查看结果树。 最后调试并执行用例,最后编写接口测试报告。
4.多接口怎么测(postman里面有一个批量处理) postman做接口集合测试注意细节有三点: 1、我们要实现批量执行接口用例 2、在批量执行接口用例时,我们需要在对应的用例加断言一般用tests[重命名]responsebody.has(内容) 3、在执行完成后,我们只需关注断言失败的用例(要是密码改不了,需要删除cookie后再登录,再修改密码) 执行,首先在collections中新建一个文件夹,把要测试的用例saveas到这个文件夹中,并重新命名,注意我们的格式和数据,及cookie值是否保存。 完成之后,第二步就是来到runner运行,选择文件夹,环境选择、根据参数来选择执行次数。等待时间、参数范围、data数据类型本地本件、文件格式txt,勾是处理编码问题。 最后看运行结果,只看body中的参数是否传入中却就可以了,因为有断言
5.get和post请求的区别
get和post请求都是客户端向服务器提交的一种请求方式 get是明文传输参数、倾向于请求服务器资源。比如打开网站 post传输数据不可见,安全性高,倾向于向服务器提交数据,比如注册等 6.接口请求的基本结构 1.操作历史 2.接口地址 3.服务端返回数据
7.接口自动化测试怎么做的 和第四题一样;
8.业务中接口测试的业务请求是怎样的? 一个具体的接口讲解: 请求参数有哪些? 返回参数有哪些? 比如:登录接口:账号,密码 请求, 返回的是登录成功200,或密码错误300,账号错误400, 请输入账号密码500 ,账号为空600
9.调用接口异常有哪些测试点? 异常分为两类,参数异常和数据异常 参数异常: 关键字参数:将参数写为开发语言中的关键字 参数为空:比如去掉了username参数 多或少参数:多或者少参数的验证,现在还不确定如果一个接口多了参数如果没有报错是否是合理的,或者是否需要优化,因为就目前开发给予的答案拿是,一般不对接口多了参数的处理 错误参数:比如将username参数写为了user等看是否能返回相应的error?code 数据异常: 关键字数据:将参数的值填为开发语言中的关键字 数据为空:将参数的额值填为空 长度不一致:因为数据库中每个字段都设置有字段长度,填写不符合的长度进行验证 错误数据:就是将参数的值任意填写,或填写不存在的数值 异常类型测试: 比如count参数,这个参数的类型一定是可以转换为int类型的,这时候我们需要测试如果传的一些不可以 转换为int类型值来测试代码是否加入判断
10.是怎么处理接口超时的? 1.增加超时时间 2.尝试多调用一次 3.使用待处理队列 4.回滚数据 5.使用异步机制
(2)如何设置接口超时 ?
11.一个完整的请求有哪几部分组成? 请求方式 url:统一资源定位符,接口的访问地址(包含服务器地址+接口地址) 请求体部 Web表单传输格式 键 值 响应体 响应内容 12请求方式有哪些? 其实HTTP协议是一个广泛应用的Internet协议,目前常用八种请求方式,分别是GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。
13请求正文的文本格式? xml、json、txt、html
14.请求头包含哪些内容 请求(客户端->服务端[request]) Accept: /(客户端能接收的资源类型) Accept-Language: en-us(客户端接收的语言类型) Connection: Keep-Alive(维护客户端和服务端的连接关系) Host: localhost:8080(连接的目标主机和端口号) Referer: http://localhost/links.asp(告诉服务器我来自于哪里) User-Agent: Mozilla/4.0(客户端版本号的名字) Accept-Encoding: gzip, deflate(客户端能接收的压缩数据的类型) If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT(缓存时间) Cookie(客户端暂存服务端的信息) Date: Tue, 11 Jul 2000 18:23:51 GMT(客户端请求服务端的时间)
15.响应头包含哪些内容 响应(服务端->客户端[response]) HTTP/1.1(响应采用的协议和版本号) 200(状态码) OK(描述信息) Location: http://www.baidu.com(服务端需要客户端访问的页面路径) Server:apache tomcat(服务端的Web服务端名) Content-Encoding: gzip(服务端能够发送压缩编码类型) Content-Length: 80(服务端发送的压缩数据的长度) Content-Language: zh-cn(服务端发送的语言类型) Content-Type: text/html; charset=GB2312(服务端发送的类型及采用的编码方式) Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT(服务端对该资源最后修改的时间) Refresh: 1;url=http://www.it315.org(服务端要求客户端1秒钟后,刷新,然后访问指定的页面路径) Content-Disposition: attachment; filename=aaa.zip(服务端要求客户端以下载文件的方式打开该文件) Transfer-Encoding: chunked(分块传递数据到客户端) Set-Cookie:SS=Q0=5Lb_nQ; path=/search(服务端发送到客户端的暂存数据) Expires: -1//3种(服务端禁止客户端缓存页面数据) Cache-Control: no-cache(服务端禁止客户端缓存页面数据) Pragma: no-cache(服务端禁止客户端缓存页面数据) Connection: close(1.0)/(1.1)Keep-Alive(维护客户端和服务端的连接关系) Date: Tue, 11 Jul 2000 18:23:51 GMT(服务端响应客户端的时间) 在服务器响应客户端的时候,带上Access-Control-Allow-Origin头信息,解决跨域的一种方法。
16.常见的http响应状态码 一些常见的状态码为: 200: 成功 301/302: 请求重定向到另外一个接口 400: 请求语法错误 403:资源没有访问权限 404:资源不存在(有可能是请求url错误或参数不正确) 405:请求方法不被允许(比如接口只允许Post,使用Get请求接口) 500:服务器内部错误(通常是服务器挂了或接口Bug) 502: 网关失效 504: 网关请求超时
17.postman参数化设置如何设置?
全局变量 全局变量是将这个变量设置成整个程序的都可以用,不用去区分环境设置。 1.打开Postman,点击右上角的环境管理按钮 2.选择Global,设置全局变量 3.输入你要设置的变量名和变量,点击Save,进行保存 4.引用全局变量,引用的方法为:{{变量名}} 文档参数化,Postman支持Json文档,txt文档,CSV文档 前提条件: 本文以txt文档为例,在txt里面创建测试数据,存入手机号和密码。多个数据之间用逗号分隔(逗号是英文的) 1.先创建一个Collection集合 2.将请求添加到集合里面 3.设置请求参数的变量 注意:变量名要和txt文档中的变量名一致 4.设置Tests断言 18.postman如何设置断言 打开postman,点击tests,可设置断言
19.postman如何设置全局变量和环境变量 Postman右上角设置图标,选择Manage Environments 点击add 填写全局变量名及key value值 20.接口测试用例设计主要考虑哪些方面 接口用例设计 主要考虑接口的功能,业务,异常,性能,安全进行测试 接口的功能 测试接口的功能正确,确实符合接口文档中对接口的功能描述。
接口的业务逻辑 测试接口的业务依赖,某个接口执行需要依赖上一个接口成功请求的cookie 接口的异常 测试接口的入参参数名异常,参数数据异常。 参数名异常:参数名称错误,参数多一个,参数少一个,参数为空。 参数数据异常:数据类型错误,数据有效值错误,数据为空错误,数据长度错误 入参值校验 参数必填校验,参数长度校验,参数数据类型校验,参数数据有效值校验,参数 是枚举值,要覆盖所有枚举值。参数数据默认值校验,参数与参数组合数据校验 接口请求超时 接口处理大量测试数据,数据库读写能力
接口的性能 测试接口并发数,响应时间,吞吐量,服务资源使用情况(cpu,内存)
接口的安全 测试接口的敏感信息加密 请求时传输的参数数据加密 cookie,session有效时间 重要的信息存session,其他信息存cookie,有效时间设定。
21.fiddler如何抓包 1、选择勾选上https的解密选项。 2、配置https的代理证书 3、将fiddler重启就可以看到可以抓取到https的访问的链接了
22.fiddler如何设断点,为什么设断点 选择fiddler菜单中Rules->Automatic Breakpoints->Before Requests,设置断点,也可以使用快捷键F11; 可以修改发送到服务器的数据包,但是修改前需要拦截,即设置断点。设置断点后,开始拦截接下来所有网页,直到取消断点。
23.fiddlers如何手机代理,抓app包 这个设置需要电脑和手机处于同一个局域网下,一般可以使用同一个wifi。保证手机能够连通电脑。 1、勾选上 “Allow remote computersto connect” ,允许远程设备连接。 2、选择ipconfig获取电脑的Ipv4地址 将 Fiddler 代理服务器的证书导到手机上才能抓这些 APP 的包。 3、打开手机wifi,一直点击wifi处,出现修改wifi网络。 4、打开显示高级选项,依次设置如下值 (导入的过程:打开浏览器,在地址栏中输入代理服务器的 IP 和端口(即电脑的IP加fiddler的端口),会看到一个Fiddler 提供的页面,然后确定安装就好了) 5、在重启一下fiddler就可以看到fiddler抓取手机app中发送包的内容了
24.开发者工具F12如何查看接口请求 1、打开谷歌浏览器,单击F12,打开开发者工具,选择network 2、页面进行相关操作,可以看到network下有很多请求,如下图
|