1.Webdriver可以用来做接口测试吗?
接口测试有现成的模块来处理,WebDriver是用于做WebUI自动化测试的。如果要实现接口测试,可以使用Requests模块来实现
2.按你的理解,软件接口是什么?
就是指程序中具体负责在不同模块之间传输或接受数据的并做处理的类或者函数。
3.HTTP 和 HTTPS 协议区别?
4.HTTPS 在哪一层?
HTTPS 在应用层。
5.get 和 post 区别是什么?
POST 和 GET 都是向服务器提交数据,并且都会从服务器获取数据。
区别:
6.常见的 POST 提交数据方式
主要有四种方式:application/x-www-form-urlencoded、multipart/form-data、
application/json、text/xml 等。
7.什么是 Http 协议无状态协议?怎么解决 HTTP 协议无状态协议
无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服
务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会
记录任何信息。HTTP 是一个无状态协议,这意味着每个请求都是独立的,Keep-Alive 没能
改变这个结果。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导
致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。HTTP
协议这种特性有优点也有缺点,优点在于解放了服务器,每一次请求“点到为止”不会造成
不必要连接占用,缺点在于每次请求会传输大量重复的内容信息。客户端与服务器进行动态
交互的 Web 应用程序出现之后,HTTP 无状态的特性严重阻碍了这些应用程序的实现,毕竟
交互是需要承前启后的,简单的购物车程序也要知道用户到底在之前选择了什么商品。于是,
两种用于保持 HTTP 连接状态的技术就应运而生了,一个是 Cookie,而另一个则是 Session。
8.cookie 和 session 的区别
cookie 数据存放在客户的浏览器上,session 数据放在服务器上
cookie 不是很安全,别人可以分析存放在本地的 cookie 并进行 cookie 欺骗,考虑到安全
应当使用 session
session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑
到减轻服务器性能方面应当使用 cookie
单个 cookie 保存的数据不能超过 4K,很多浏览器都限制一个站点最多保存 20 个 cookie
可以将登陆信息等重要信息存放为 session;其他信息需要保存,可以放在 cookie
9.请求接口中常见的返回状态码
常见的返回码有:
10.什么是 DNS?
DNS 是域名系统 (Domain Name System),DNS 是用来做域名解析的,它会在你上网输入
网址后,把它转换成 IP,然后去访问对方服务器;没有它,你想上百度就要记住百度的 IP,
但有了 DNS 的处理,你只需要记住对应网站的域名,即网址就可以了。
11.请问你们公司是如何做接口测试的?
接口测试实际跟一般测试不同就是测试用例的设计部分。
12.怎么设计接口测试用例?
通常,设计接口测试用例需要考虑以下几个方面:
有些接口需要满足前提,才可成功获取数据。常见的,需要登录 Token
逆向用例:针对是否满足前置条件(假设为 n 个条件),设计 0~n 条用例
正向用例:带默认值的参数都不填写、不传参,必填参数都填写正确且存在的“常规”值,
其他不填写,设计 1 条用例
这里根据时间情况,结合接口参数说明,可能需要设计 N 条正向用例和逆向用例
逆向用例:针对每个必填参数,都设计 1 条参数值为空的逆向用例
有些参数彼此之间存在相互制约的关系
逆向用例:针对每个参数都设计 1 条参数值类型不符的逆向用例
正向用例:针对所有参数,设计 1 条每个参数的参数值在数据范围内为最大值的正向用例
13.你做接口测试,测什么?
可用性测试
根据约定的协议、方法、格式内容,传输数据到接口经处理后返回期望的结果:
错误和异常处理测试
安全性测试,主要指传输数据的安全性:
性能测试,如接口的响应时间、并发处理能力、压测处理情况:
14.平常用什么工具测接口的?
常用 http 协议接口测试工具,如:postman、fiddler、jmeter;webService 接口用 SoapUI、
jmeter 等。
15.没有接口文档,如果做接口测试?
用抓包工具把接口抓取处理,然后针对性进行测试;接口中字段信息不清楚的,找时间
集中寻求开发解答。(常用抓包工具 Fiddler、Charles 等)
16.在手工接口测试或者自动化接口测试的过程中,上下游接口有数据依赖如何处理?
用一个全局变量来处理依赖的数据,比如登录后返回 token,其它接口都需要这个 token,
那就用全局变量来传 token 参数。
17.依赖于第三方数据的接口如何进行测试?
mock接着面试官会问你,如果 mock 的,然后你就顺着坑继续挖,搭建 mock 服务。
18.接口测试中,依赖登录状态的接口如何测试?
依赖登录状态的接口的本质上是在每次发送请求时需要带上 session 或者 cookie 才能
发送成功,在构建 POST 请求时添加必要的 session 或者 cookie
19.如何模拟弱网做测试?
Fiddler 和 charles 都可以模拟弱网测试,平常说的模拟丢包,也是模拟弱网测试。具
体可以看《几种弱网模拟方法,总有一种适合你》
20.你平常做接口测试的过程中发现过哪些 bug?
21.当一个接口出现异常时候,你是如何分析异常的?
22.如何分析一个 bug 是前端还是后端的?
平常提 bug 的时候,前端开发和后端开发总是扯皮,不承认是对方的 bug。
这种情况很容易判断,先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就
是前端发的数据不对;
请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题咯。
23.你们做接口测试自动化吗?
现在针对大量应用,普遍推崇做接口测试自动化,维护成本低、收益高。常用的工具有
许多,如 Jmeter、Robot Framework、pytest 等。
24.列出几个 JMeter 监听器?
一些 JMeter 监听器是:
集合报告
汇总报告
查看结果树
用表格查看结果
图形结果
BeanShell Listener
摘要报告等
25.在 python 中进行数据驱动测试
在 unittest 中,没有自带的数据驱动,我们得借助 ddt 来实现,首先,我们得在 python
运行环境中安装 ddt,用下列命令安装
pip install ddt
另 外 一 个 测 试 框 架 pytest , 它 自 带 数 据 驱 动 实 现 , 是 通 过
@pytest.mark.parametrize(argnames,argvalues) 来实现参数化的。
也可以根据自己需求用 python 实现数据的读取和驱动。
26.接口自动化中的关联怎么处理?
把上一个请求返回的结果传入到下一个请求的参数中,将请求的结果反射到一个类属性(使
用 setattr()函数),下一个请求去调用这个类属性
27.自动化测试怎么校验结果?
断言 ,预期结果与实际结果对比
数据库校验,根据测试场景来查询数据库里的数据和请求之前的数据进行比对。
28.具体的在这个项目中自动化怎么应用到实际的,您对自动化结果的分析
完成所有的自动化测试框架的设计和实现后,进行接口测试,然后集成到
jenkins,配置定时执行,生成 html 报表,查看测试通过率,查看接口的功能
每次发版时,进行回归测试,新功能开发未提测前。
原文:https://www.cnblogs.com/xiyuan2016/p/14265602.html