1.http协议的工作流程是什么样的?
(1)地址栏输入url
(2)浏览器地址解析:域名转换成IP
(3)封装成TCP包,建立TCP连接(TCP的三次握手)
(4)发送http请求
(5)响应http请求
(6)断开TCP连接(TCP的四次挥手)
(7)浏览器显示http的响应数据
2.你们公司如何做接口测试?
首先我们公司做接口测试主要是测试产品的功能、性能及简单的安全性。通过接口文档进行接口需求分析----编写测试用例---用例评审,然后用工具执行用例,对产生的bug进行追踪。
怎么用例评审?(大公司)把相关的人叫一块开会评审,(小公司)自己和开发讨论。
3.https和http协议的不同之处?
①安全性:http是明文传输而https是加密传输,所以https比http安全
②经济:由于https需要加密所以需要申请ca证书(ca证书免费证书很少,需要交费),
ca证书是收费的。http协议免费申请,所以http免费而https收费
③由于https在传输中需要来回的加密解密所以https对资源的消耗比http大一些,https对资源的
消耗主要体现在电能和缓存方面
④url的不同
⑤端口:http是80端口,而https是443端口
⑥连接方式:数据传输时http直接与tcp建立连接,是无状态的。而https需要先建立SSL连接再建立tcp连接,是可进行加密传输、身份认证的网络协议,建立SSL连接就是对加密方式的一个处理
3.app某一页面元素数据展示错误,正确的是A,目前显示的是B,该如何定位这个问题?
用工具绕过前台,发一个查询页面元素数据的接口请求给后台,看后台的返回数据,若后台返回数据显示是A的话,那这个bug就是前台的,若后台返回数据显示为B的话,则需要判断是数据库的问题,还是属于后台业务逻辑的问题,用工具通过直连数据库,查看数据库的返回结果,若数据库返回数据显示为A,则是后台业务逻辑的问题,否则是数据库的问题
4.简述get和post方法的区别
get ,请求方法是查询,请求数据全部在url内,相对来说速度快,不安全,需要考虑浏览器对url长度限制,需要考虑服务器对请求数据大小的限制
post ,请求方法是新增,请求数据都在请求体内,相对来说速度慢,安全,需要考虑服务器对请求数据请求数据大小的限制
5.用fiddler抓包工作做什么?fiddler抓包工具的原理是什么?
fiddler抓包工作做什么:记录客户端和服务器之间的所有 HTTP请求,
可以针对特定的HTTP请求,分析请求数据,调试web应用、修改请求的数据
没有接口文档的公司可以使用fiddler抓接口信息,定位bug
fiddler抓包工具的原理:fiddler抓包工具的原理是客服端与服务器需要经过fiddler的代理服务器代为转发请求与响应。
6.fiddler如何抓https和手机的包?
fiddler抓https的包的步骤:先点击fiddler里的Options下的HTTPS,勾选Decrypt HTTPS traffic选项,弹出接受证书提示框,一路点yes,最后点确定,然后点ok。如果不小心拒绝了证书的弥补,那么点击Actions下的Reset All Certificates,重置所有证书,再按前面的步骤来,如果浏览器不信任fiddler,那么先导出fiddler的证书,点击Actions下的Export Root Certificate Desktop,然后在桌面上右击fiddler的证书,点击安装,如果是FireFox,它有自己的证书管理器,可以自己导入。进入网页,在fiddler看抓到的包。
fiddler抓手机包的步骤:前提:fiddler和手机在一个局域网中,点击Options下的Connections,端口号填8888,勾选Allow remote computers to connect选项,点击ok。鼠标放在Online上,记住上面显示的fiddler的ip地址,打开夜神模拟器,浏览器输入fiddler的ip地址,点击FiddlerRoot certificate,下拉点击安装完成,设置用户名和锁屏手势,选择设置里的无线网,点击修改网络,点击手动设置代理,输入端口号和fiddler的ip地址,点击保存,打开一个app,去fiddler里看抓到的包,如果process里看到了noxvmhandle,则说明抓包成功。
7.删除好友请求,删除了好友,但仍然显示在好友列表中,你该如何定位这个bug?
用fiddler抓包工具来定位下,看看bug是前台还是后台的,如果看返回结果,后台确实删除成功,则bug是前台的,如果后台数据确实没有删除,则bug是后台的,
这是我们可以用jemter发一个数据数据库直连请求,看一下数据库中是否还有这个好友,如果数据库已经没有该好友了,则证明后端的返回数据的业务逻辑有问题,如果数据库中还有好友,证明数据库的操作有问题。
8.你们公司有接口测试文档吗?有哪些内容,没有的话你们是怎么做的 ?
有,接口文档包含:接口名称,请求的url,请求方式,请求参数,返回示例
其中请求参数请求参数(参数名、是否必选、参数类型、默认值和参数说明)
返回示例需要我们在其中找到接口测试预期结果
没有的话,我们可以通过fidder 进行抓包然后分析,如果有一些不确定的地方我们就需要找发开问一下确定一下。
9.如何用fiddler定位bug?
1、用fiddler对产品进行抓包
2、检查接口地址是否正确
3、检查响应状态是否存在异常
4、检查接口传递参数
5、检查接口返回数据
如果接口传递参数有误,一般都是前台bug
而一般接口返回数据有误,则往往都是后台bug
10.请求接口中常见的返回状态码?
2** 请求发送成功
200 查询成功: 201新建成功 204删除成功
3**需要进一步处理
4** 客户端的请求有误:415 请求体格式有误 404服务器找不到相应的资源
5** 服务器端响应有误:500 服务器内部错误
11.接口测试用例是如何编写的?
接口测试用例的编写是根据业务规则和参数覆盖的原则进行编写,
业务规则:我们一般考虑业务流程,正向流程,逆向流程,业务的边界,
参数覆盖:主要考虑参数的类型,边界值,个数,必填,可选,及默认值等覆盖,还有一些参数的唯一性和存在性覆盖,参数中的特殊字符等等。
还要考虑安全用例和性能用例。
-------------------------------------------------------------------------------------------------------整理自网络----侵删