接口/自动化测试 面试集合

1. apache和nginx的区别?

Nginx相对Apache的优点:

轻量级,同样起web服务,比apache占用更少的内存及资源;
抗并发,nginx处理请求是异步非阻塞的,支持更多的并发连接,而apache则是阻塞型的,在高
并发下nginx能保持低资源低消耗高性能;

配置简洁;
高度模块化的设计,编写模块相对简单;社区活跃。
Apache相对Nginx的优点: rewrite ,比nginx的rewrite强大;
模块超多,基本想到的都可以找到;少bug,nginx 的bug相对较多;超稳定。

2.列举API测试中使用的一-些常用协议?

  • HTTP
  • REST
  • SOAP
  • JMS
  • UDDI
  • dubbo

3.API测试中究竟需要验证哪些内容?

数据准确性:

  • HTTP或其他协议状态代码
  • 响应时间
  • API返回任何错误时的错误代码
  • 授权检查
  • 非功能测试,如性能测试,安全测试

4.列举-些最常用的HTTP方法?

  • GET:从服务器检索数据
  • POST:将数据添加到服务器中的现有文件或资源
  • PUT:它允许您替换服务器中的现有文件或资源
  • DELETE:它允许您从服务器中删除数据
  • PATCH:用于对资源进行部分修改
  • 选项:用于描述目标资源的通信选项
  • HEAD:它要求响应与GET请求相同,但没有响应正文

5.平常用什么工具测接口的?

常用http协议接口测试工具,如: postman、fiddler、jimeter; webService 接口用SoapUl、jmeter等。

6.没右培口立档,如果做接口测试?

用抓包工具把接口抓取处理,然后针对性进行测试;接口中字段信息不清楚的,找时间集中寻求开发
解答。(常用抓包工 具Fiddler、Charles等 )

7.在手工接口测试或者自动化接口测试的过程中,上下游接口有数据依赖如何处理?

用一个全局变量来处理依赖的数据,比如登录后返回token,其它接口都需要这个token,那就用全局变量来传token参数。

8.接口测试中,依赖登录状态的接口如何测试?

依赖登录状态的接口的本质上是在每次发送请求时需要带上session或者cookie才能发送成功,在构建POST请求时添加必要的session或者cookie

9.如何模拟弱网做测试?

Fiddler和charles都可以模拟弱网测试,平常说的模拟丢包,也是模拟弱网测试

10.你平常做接口测试的过程中发现过哪些bug?

  • 常规错误,接口没实现,没按约定返回结果,边界值处理出错等。
  • 输入异常值(空值、特殊字符、超过约定长度等),接口抛错,没做封装处理;
  • 输入错误的参数、多输入、少输入参数,接口可能出现的错误;
  • 安全性问题,如明文传输、返回结果含有敏感信息,没对用户身份信息做校验,没做恶意请求拦
  • 截等;
  • 性能问题,如接口并发插入多条相同操作,响应时间过长,接口压测出现瓶颈等;

11.当-个接口出现异常时候,你是如何分析异常的?

  • 先抓包,用fiddler (charles) 工具抓包,或者浏览器上F12调试工具; APP. 上的话,那就用Fiddler
    做代理,通过手机设置代理去看请求和返回报文;
  • 查看后端日志,如Linux系统通过xhell连.上服务器,查看接口日志,查看是否有报错信息(命令: tail-f 日志文件) ;

12.如何分析-个bug是前端还是后端的?

平常提bug的时候,前端开发和后端开发总是扯皮,不承认是对方的bug。
这种情况很容易判断,先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就是前端发的数据不对;
请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题咯。

13.HTTP和HTTPS协议区别?

httpst协议需要到CA (Certificate Authority,证书颁发机构)申请证书,-般免费证书较少,因而
需要一定费用;

http是超文本传输协议,信息是明文传输,Https协议是由SSL+Http协议构建的可进行加密传输、
身份认证的网络协议,比http协议安全;http和https使用的是完全不同的连接方式,用的
端口也不一样,前者是80, 后者是443;

14.常见的POST提交数据方式

主要有四种方式: application/x-www-form-urlencoded、multipart/form-data、application/json、text/xml等。

15. cookie和session的区别

  • cookie数据存放在客户的浏览器上,session数据放在服务器上
  • cookie不是很安全,别人可以分析存放在本地的
  • cookie并进行cookie欺骗,考虑到安全应当使用

session

  • session会在一定时间内保存在服务器 上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面应当使用cookie
  • 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie
  • 可以将登陆信息等重要信息存放为session;其他信息需要保存,可以放在cookie

16.请求接口中常见的返回状态码

  • 1xx-信息提示(表示临时的响应。客户端在收到常规响应之前,准备接收一个或多个1xx响应)
  • 2xx-成功(表明服务器成功地接受了客户端请求)
  • 3xx-重定向(客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求)
  • 4xx-客户端错误(发送错误,客户端有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份证验证信息)
  • 5xx -服务器错误(服务器由于遇到错误而不能完成该请求)

17.请问你们公司是如何做接口测试的?

接口测试实际跟-般测试不同就是测试用例的设计部分。

  • ① 获取接口规范。
  • ② 设计接口测试功能用例(主要从用户角度出发看接口能否实现业务需求,用例设计就是黑盒用例那一套)。
  • ③ 各种入参验证(正常情况,异常情况包括输入参数个数不对,类型不对,可选/必选,还有考虑参数有互斥或关联的情况)。
  • ④ 接口返回值各种验证(符合接口文档需求)
  • ⑤ 了解接口实现逻辑,实现逻辑覆盖(语句/条件/分支/判定...)
  • ⑥ 接口能并发执行吗、安全吗,性能满足要求吗?
  • ⑦ 采用工具或者自写代码来验证。
  • ⑧ 发现问题跟功能测试一样,该报bug报bug,该跟踪状态的跟踪状态。

18.自动化测试的优势是什么?

自动化测试的一些基本优点如下:

  • 自动化测试支持对应用程序进行功能和性能测试。
  • 它支持重复测试用例的执行。
  • 它有助于并行执行。
  • 它有助于测试大型测试矩阵。
  • 由于没有人为错误的机会,因此可以提高准确性。节省时间和金钱。

19.get跟post请求的区别

  • get请求的参数有长度限制,post没有
  • get请求参数在url上传输,post的参 数在请求正文中传输。post比get传输更安全
  • get只能接收ascall码参数,而post没有限制
  • get请求的时候,只请求一次,而post请求两次,第一发送请求头相关信息,第二次再发送请求正文,(只有部分浏览器2次请求)

20.TCP模型

有四层:应用层(telnet.stp.htp), 传输层( CP UDP)、网络层,数据链路层

21.TCP和UDP的区别?

(1)TCP面向连接、而UDP面向非连接
(2)TCP相对UDP更可靠
(3)TCP应用场景,用于传输少量数据,而UDP用于传输大量数据
(4)TCP传输的数据相对UDP慢

22.接口测试的流程?

1、首先分析开发给到的接口文档
2、接口文档分析完成,编写测试用例
3、然后借助接口测试工具去测试执行测试用例
4、发现bug提交bug,并跟进bug修复

23.你怎么去检查,分析

我们主要是根据入参情况,去看接口的返回值,对于返回值,我主要关注的几个点:

1.状态码
2.提示信息
3.返回数据的具体内容。根据接口文档的说明去检查这个3个点是否满足接口需求文档,
4.有些如果要检查数据库的,就连接数据库获取数据与返回的数据做对比。
如果不满足就是有问题,如果满足则通过,如果有Bug我们会先大概分析下,是什么原因,并进行复测,如果还是有问题,提交Bug给开发,让开发修复,之后再回归测试

24.什么情况下开展接口测试?

  • 1、项目处于开发阶段
  • 2、有接口需求文档,开发已完成联调,功能测试展开之前
  • 3、专项测试:参数约束测试,业务场景测试,测试接口请求响应时间(性能)
  • 4、版本上线前,进行整体回归测试,查看接口是否有异常(如404等)

25.在python中进行数据驱动测试

  • 在unittest中,没有自带的数据驱动,我们得借助ddt来实现,首先,我们得在python运行环境中安装ddt,用下列命令安装【pip install ddt】
  • 另外一个测试框架pytest,它自带数据驱动实现,是通过@pytest.mark.parametrize(argnames,argvalues) 来实现参数化的。
    也可以根据自己需求用python实现数据的读取和驱动。

26.请简单说一下unittest和pytest的区别?

  • uninttest是python的官方库,兼容性稍好。 pytest在安装时可能会出现和python版本不匹配的问题
  • uninttest在编写用例时是以类的形式编写的,并且都要继承testCase, pytest当中支持函数和类两种编写形式,并且pytest有conftest.py这个文件来支持全局的共享前置后置
  • 在用例收集上,uninttest要利用testloader和testsuite来主动收集和加载用例,而pytest能够自动识别用例
  • 在用例分类筛选上uninttest稍显麻烦,而python可以通过打标签轻松筛选用例
  • 如果运行失败的话,uninttest官方没有提供失败重启的机制,而pytest自带失败重启的机制。
  • 在运行结构方面,uninttest没有支持插件,而pytest中有700多个插件可以支持
  •  这是我整理的《2024最新Python自动化测试全套教程》,以及配套的接口文档/项目实战【网盘资源】,需要的朋友可以下方视频的置顶评论获取。肯定会给你带来帮助和方向。

    【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值