川石教育
全国咨询热线:136-9172-9932
  1. 首页 > 资讯与干货 > 常见问题

面试宝典 | 经典自动化测试面试题

作者:川石信息 日期:2022-09-19 11:49:19 点击数:

  图片

  不管是应届生还是社招生,相信你都经历过面试的摧残。面对咄咄逼人的面试官,面对随处可见的问题陷阱。每次面试都是摩拳擦掌,跃跃欲试,但是却往往是过了HR的第一关,却死在笔试题下。

  如果你打算近几个月换工作,准备往自动化测试方向走,那么关注本文就对了!为了面试更好的表现,除了背背背,别无他法了。下面给大家搞十几道自动化测试面试题炫炫吧

图片

  Q1.get和post的区别?

  1)传送方式:get通过地址栏传输,post通过报文传输

  2)传送长度:get参数有长度限制(受限于url长度),而post无限制

  3)get产生一个tcp数据包(对于get方式,浏览区会把header和data一并发送出去,服务器响应,返回数据)

  pos产生两个tcp数据包(对于post,浏览器先发送header。服务器响应100 continue,浏览器再发送data,服务器响应返回数据)

  4)get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留

  Q2.JSON的两种结构

  1) 对象:用大括号表示,对象由属性组成,属性由键值对组成,键和值对之间用冒号隔开,属性之间用逗号隔开,另外键必须用双引号。如:{"姓名":"Lara","年龄":18}

  2) 数组:用中括号表示。如:["小鸡","小鸭","小狗"]

  Q3.常见的http状态码分别代表什么?

  2XX--成功

  3XX--重定向(客户端浏览器必须采取更多操作来实现请求)

  4XX--客户端错误

  5XX--服务器错误

  具体:

  302:临时重定向到某一个页面,比如要登录之后才能进入的页面,他首先会临时重定向到登录界面

  401:用户发出的请求有错误,服务器没有进行新建或修改数据的操作【Unauthorized】

  403:表示用户得到授权,但访问被禁止【Forbidden】

  404:用户发出的请求得到是不存在的记录,服务器没有进行操作【NOT FOUND】

  503:服务端目前无法使用,过载或者维护中

  500:服务端发生错误,用户无法判断发出的请求是否成功

  Q4.requests 库响应消息体四种格式

  r.text:文本响应内容

  r.content:字节响应内容

  r.json():Json解码响应内容

  r.raw:原始响应内容

  Q5.当一个接口出现异常,你是如何分析异常的?

  用fiddler工具抓包或者浏览器上按F12调试。

  app上就用fiddler设置代理,去看请求报文和返回报文。查看后端日志,xshell连上服务器,查看日志。

  Q6.接口测试用例的编写要点有哪些?

  1)必填字段:请求参数必填项、可选项

  2)合法性:输入输出合法、非法参数

  3)边界:请求参数边界值等

  4)容错能力:大容量数据、频繁请求、重复请求(如:订单)、异常网络等的处理

  5)响应数据校验:断言、数据提取传递到下一级接口…

  6)逻辑校验:如两个请求的接口有严格的先后顺序,需要测试调转顺序的情况

  7)性能:对接口模拟并发测试,逐步加压,分析瓶颈点

  8)安全性:构造恶意的字符请求,如:SQL注入、XSS、敏感信息、业务逻辑(如:跳过某些关键步骤;未经验证操纵敏感数据)

  Q7.说说接口测试的流程和接口自动化流程,介绍一下request有哪些内容?

  1)流程:获取接口文档,依据文档设计接口参数,获取响应,解析响应,校验结果,判断测试是否通过。

  2)request 内容:1,封装了get、post等;2、以关键字参数的方式,封装了各类请求参数,params、data、headers、token、cookie等;

  3)封装了响应内容,status_code、json()、cookies、url等

  Q8.json和字典dict的区别

  答:json本质上还是字符串,只是按key:value这种键值对的格式来的字符串

  而字典是{key:value}的一种数据类型

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

  用一个全局变量来处理依赖的数据

  Q10.自动化使用的测试框架是什么?

  •   测试框架:python+unittest+requests+ddt+openpyxl+pymysql+logging

  •   测试框架:python:入门简单,语法简洁

  •   unittest :定义一个测试用例类,具体的方法来维护测试用例的生命周期,测试场景行为,测试用例 前置场景,行为,期望结果,实际结果,断言方法,Setup teardown方法

  •   requests:接口调用 ,支持http请求的库,API 简洁,提供不同的http请求方法,支持session,cookies,

  •   ddt :数据驱动,ddt 类装饰器,data 测试方法装饰器 unpack解包可迭代的数据类型

  •   普通用户,数据库,配置文件---(基础数据)

  •   openpyxl: 数据管理 excel管理 数据,使用openpyxl模块来进行excel数据的读和写(excle,csv, json, yaml, txt都可以管理测试数据)

  •   pymysql:数据库交互,数据校验

  •   eval,json:数据格式的转换 Eval将python支持的格式转换成对应的格式

  •   logging:日志处理, 统一日志输出格式,渠道,级别,执行结果的记录,便于定位问题

  •   jenkins:持续集成

  Q11.依赖于登录的接口如何处理?

  登录接口依赖token的,可以先登录后,token存到一个yaml或者json或者ini的配置文件里面,后面所有的请求去拿这个数据就可以全局使用了

  如果是cookies的参数,可以用session自动关联

  Q12.接口产生的垃圾数据如何清理?

  造数据的数据清理,需用python连接数据库,做增删改查操作

  测试用例前置,setUp做数据准备,后置操作,tearDown做数据清理

  Q13.python如何连接数据库操作?

  首先导入模块(提前pip安装) import pymysql

  打开数据库连接 db = pymysql.connect("localhost", "username", "psw", "db_name")

  创建一个游标对象 cursor = db.cursor()

  sql查询语句 sql = "select * from emp"

  执行sql语句 cursor.execute(sql)

  获取所有记录列表 cursor.fetchall()

  然后for循环遍历

  关闭数据库连接 db.close()

  Q14.举例说明pytest.mark标记的使用?

  1,无条件跳过测试pytest.mark.skip

  2,有条件跳过测试pytest.mark.skipif

  3,标记测试功能按预期失败pytest.mark.xfail

  4,将测试功能标记为使用给定的夹具名称pytest.mark.usefixtures

  5,向特定测试项添加警告过滤器,以便更好地控制应在测试,类甚至模块级别捕获哪些警告@pytest.mark.filterwarnings

  6,自定义标记:标记指定标签

  不管是笔试面试,为了判断你的基础是否夯实,都会有简答题,虽然看似简单,但是一不小心就会中招!

  准备了3个很基础的简单题,知道答案的小伙伴可在后台留言呦

  1.   测试的数据你放在哪?

  2.   自动化测试报告生成方式?如果是allure详述?

  3.   当做了一些不可逆的操作,如何处理,比如删除一个订单这种接口如何测试

  笔试面试题内容实在是太多了,一篇文章完全写不下,就随意挑选了几个!

  需要全套笔试面试题可找小编索取喔!


相关文章
  • 亚马逊运营成功转行软件测试,薪资13K表示很满意!2022-09-19 11:49:19
  • 西安川石的兰朋友喊你来当他的学弟学妹啦!2022-09-19 11:49:19
  • 国外的月亮也不一定比国内测试猿的年薪美~2022-09-19 11:49:19
  • 建筑工程专业朱同学成功转行为软件测试人!2022-09-19 11:49:19
  • 财务管理专业转行软件测试月薪甩会计几条街!2022-09-19 11:49:19
  • 只有技术沉淀才能成功上岸,深圳就业薪资13K!2022-09-19 11:49:19
  • 薪资11K!实现自我价值,从掌握一门IT技术开始...2022-09-19 11:49:19
  • 文科生转行软件测试照样拿下高薪15K!2022-09-19 11:49:19
  • 恭喜罗同学喜提19.5K,成功入行软件测试!2022-09-19 11:49:19
  • 毕业1年,迷茫的他最终选择转行软件测试2022-09-19 11:49:19