拿捏面试官,高频接口自动化测试面试题总结(附答案)狂收offer...
目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
面试题:自动化使用的测试框架是什么?简述自动化框架的设计、维护?
1、测试框架:Python+Unittest/Pytest+Requests+DDT+Openpyxl+Pymysql+Logging
测试框架:
python:入门简单,语法简洁
Unittest/Pytest:定义一个测试用例类,具体的方法来维护测试用例的生命周期,测试场景行为,测试用例 前置场景,行为,期望结果,实际结果,断言方法,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:持续集成
2、框架设计思路:数据驱动+结构分层(可读性,可维护性,可扩展性)
数据驱动:将维护数据与代码分离,接口调用行为一致,针对不同的参数组合驱动不同的测试场景,减少代码冗余
结构分层:数据层+用例层+逻辑层
数据层:测试数据的支撑 data.xls
用例层:用例的执行 test_register.py test_recharge.py
逻辑层:公用的方法的封装与提取 doexcle.py do_mysql.py http_requests.py logger.py等模块
3、框架设计步骤
准备测试数据: EXCEL表准备测试用例—excel数据的读取—参数值的替换
发起请求:请求方法(get/post方法进行封装—URL的拼接(不同—参数转化为字典
拿到请求的返回值:解析返回值code,status,msg信息
断言
好处:
1)自动化测试用例和手工测试用例的完美结合,减少重复工作
2)配置灵活,可以自主切换测试环境,执行测试用例
3)常用功能进行封装,逻辑清晰,易于维护
4)统一执行入口,管理测试用例集:
run.py模块通过模糊查找来选择需要执行的测试用例
5)持续集成,定时构建,快速反馈
面试题:get和post的区别?
http是上层请求协议,主要定义了服务端和客户端的交互规格,底层都是tcp/ip协议;
Get会把参数附在url之后,用?分割,&连接不同参数,Get获取资源,post会把参数放置在http请求体中,Post发送请求数据;
Get产生一个tcp数据包,post产生两个tcp数据包;
Get请求,浏览器会把http header和data一起发送,服务器返回200响应码;
Psot请求,浏览器先发送header,服务器响应100(continue),然后再发送data,服务器返回200响应码;
Post的安全性比get高,如果浏览器缓存了,会把get参数留在缓存中,用户可以看到参数信息;
面试题:post请求的四种参数形式是什么?
Application/x-www-form-urlencoded:将参数以一组键对值的方式发送;
Multipart/form-data:支持单组和多组文件上传;
Application/json:根据后端接口的定义支持数据类型;
Text/xml;
面试题:http状态码302、403、503分别代表什么?
302:临时重定向到某一个页面,比如要登录之后才能进入的页面,他首先会临时重定向到登录界面
403:权限不够 服务器理解客服端的请求,但拒绝此请求
503:服务端目前无法使用,过载或者维护中
500:服务端异常
404:请求失败,请求所希望得到的资源未被在服务器上发现
401:请求身份验证
1XX系列:指定客户端应相应的某些动作,代表请求已被接受,需要继续处理
2XX系列:代表请求已成功被服务器接收、理解、并接受。这系列中最常见的有200、201状态码。
3XX系列:代表需要客户端采取进一步的操作才能完成请求,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。这系列中最常见的有301、302状态码。
4XX系列:表示请求错误。代表了客户端看起来可能发生了错误,妨碍了服务器的处理。常见有:401、404状态码。
5xx系列:代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。常见有500、503状态码。
公司有用到第三方服务,出了问题,打电话给第三方,第三方不承认,这时候日志又显示不到错误,应该怎么处理?
1/ 单独调用第三方服务,查看三方接口返回的status,code,msg,看是否能支持正常服务
2/ 在自己的应用中mock第三方服务,来调用自己的接口,看能否正常工作,将结果反馈给第三方
3/ 配置日志级别在debug级别时,添加第三方请求过程的日志,查看入参,响应来追踪问题
面试题:接口自动化中的关联怎么处理?
把上一个请求返回的结果传入到下一个请求的参数中,将请求的结果反射到一个类属性(使用setattr()函数),下一个请求去调用这个类属性
面试题:自动化测试怎么校验结果?
断言 ,预期结果与实际结果对比
数据库校验,根据测试场景来查询数据库里的数据和请求之前的数据进行比对
面试题:具体的在这个项目中自动化怎么应用到实际的,您对自动化结果的分析
完成所有的自动化测试框架的设计和实现后,进行接口测试,然后集成到jenkins,配置定时执行,生成html报表,查看测试通过率,查看接口的功能
每次发版时,进行回归测试,新功能开发未提测前
面试题:做好测试计划的关键是什么?
明确测试目的,增强测试计划的实用性,保证测试用例的实用性和覆盖率,完全需求文档和规格指标书等,严格界定测试周期,测试轮次,测试覆盖模块等
| 下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九、总结(尾部小惊喜)
只有在不断地探索和尝试中,我们才能发现自己的潜力和价值。勇敢追求梦想,坚定前行,你将成为自己人生的赢家!
生命中最重要的事情,不是你拥有了什么,而是你如何创造和分享价值。坚持追求,不断努力,你将成为自己人生的英雄!
成功不是偶然的,而是通过不断的努力和奋斗赢得的。相信自己的能力,坚定前行,你将创造出属于自己的不朽传奇!
相关文章:
拿捏面试官,高频接口自动化测试面试题总结(附答案)狂收offer...
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 面试题࿱…...
大数据-Storm流式框架(六)---Kafka介绍
Kafka简介 Kafka是一个分布式的消息队列系统(Message Queue)。 官网:Apache Kafka 消息和批次 kafka的数据单元称为消息。消息可以看成是数据库表的一行或一条记录。 消息由字节数组组成,kafka中消息没有特别的格式或含义。 消息有可选的键&#x…...
自动驾驶的未来展望和挑战
自动驾驶技术是一项引人瞩目的创新,将在未来交通领域产生深远影响。然而,随着技术的不断演进,自动驾驶也面临着一系列挑战和障碍。本文将探讨自动驾驶的未来发展方向、技术面临的挑战,以及自动驾驶对社会和环境的潜在影响。 自动驾…...
2.11、自定义图融合过程与量化管线
introduction 介绍如何自定义量化优化过程,以及如何手动调用优化过程 code from typing import Callable, Iterableimport torch import torchvisionfrom ppq import (BaseGraph, QuantizationOptimizationPass,QuantizationOptimizationPipeline, QuantizationSetting,Tar…...
Linux——文件权限属性和权限管理
文件权限属性和权限管理 本章思维导图: 注:本章思维导图对应的Xmid文件和.png文件都以传到“资源” 文章目录 文件权限属性和权限管理1. sudo提权和sudoers文件1.1 sudo提权和成为root的区别 2. 权限2.1 Linux群体2.1.1 为什么要有所属组2.1.2 修改文件…...
数组与链表算法-单向链表算法
目录 数组与链表算法-单向链表算法 C代码 单向链表插入节点的算法 C代码 单向链表删除节点的算法 C代码 对单向链表进行反转的算法 C代码 单向链表串接的算法 C代码 数组与链表算法-单向链表算法 在C中,若以动态分配产生链表节点的方式,则可以…...
Oracle(6) Control File
一、oracle控制文件介绍 1、ORACLE控制文件概念 Oracle控制文件是Oracle数据库的一个重要元素,用于记录数据库的结构信息和元数据。控制文件包含了数据库的物理结构信息、数据字典信息、表空间和数据文件的信息等。在Oracle数据库启动时,控制文件会被读…...
吴恩达《机器学习》2-5->2-7:梯度下降算法与理解
一、梯度下降算法 梯度下降算法的目标是通过反复迭代来更新模型参数,以便最小化代价函数。代价函数通常用于衡量模型的性能,我们希望找到使代价函数最小的参数值。这个过程通常分为以下几个步骤: 初始化参数: 随机或设定初始参数…...
Pytorch detach()方法
detach() 是 PyTorch 中的一个方法,用于从计算图中分离(detach)张量。它可以将一个张量从当前计算图中分离出来,返回一个新的张量,该张量与原始张量共享相同的底层数据,但不再追踪梯度信息。 当你需要在计…...
CTF-php特性绕过
注意:null0 正确 nullflase 错误 Extract变量覆盖 <?php$flagxxx; extract($_GET);if(isset($shiyan)){ $contenttrim(file_get_contents($flag));//trim移除引号if($shiyan$content){ echoctf{xxx}; }else{ echoOh.no;} }?> extract() 函数从数组中将…...
人脸识别测试数据分析
一个人脸识别研究小组对若干名学生做了人脸识别的测试,将测试结果写入到一个文件 dir_50.txt 中,每一行是一张照片的识别结果“_照片编号”“.jpg”的字符串组合,示例如下: [1709020621, 0]_116.jpg [1709020621]_115.jpg [17706…...
MySQL 5.7限制general_log日志大小
背景 需求: 在MySQL 5.7.41中开启general_log 并限制其大小,避免快速增长占用硬盘空间。 解决: 通过定时任务,执行简单的脚本,判断general_log 日志的大小,实现对通用查询日志的“每日备份”或“每日清…...
tomcat9~10猫闪退个人经验
java版本17与8 8版本有jre,java17没有jre 所以在java8版本中将jre和jdk路径一同添加环境是不会出现闪退的,tomcat9没有闪退 但是在10就闪退了,因为java版本太低 java17没有jre,但是可以通过一种方法添加jre到java17的目录 完…...
Linux之J2EE的项目部署及发布
目录 前言 一、会议OA单体项目windows系统部署 1.检验工作 1. 检验jar项目包是否可以运行 2. 验证数据库脚本是否有误 3. 测试项目功能 2. 部署工作 2.1 传输文件 2.2 解压项目及将项目配置到服务器中 2.3 配置数据库 2.4 在服务器bin文件下点击startup.bat启动项目 …...
基于闪电搜索算法的无人机航迹规划-附代码
基于闪电搜索算法的无人机航迹规划 文章目录 基于闪电搜索算法的无人机航迹规划1.闪电搜索搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用闪电搜索算法来优化无人机航迹规划。 …...
【网络安全 --- 文件上传靶场练习】文件上传靶场安装以及1-5关闯关思路及技巧,源码分析
一,前期准备环境和工具 1,vmware 16.0安装 若已安装,请忽略 【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)-CSDN博客文章浏览阅读186次,点赞9次,收藏2次。【网络安全 --- 工…...
BUUCTF刷题记录
[BJDCTF2020]Easy MD51 进入题目页面,题目提示有一个链接,应该是题目源码 进入环境,是一个查询框,无论输入什么都没有回显,查看源码也没什么用 利用bp抓包查看有没有什么有用的东西 发现响应的Hint那里有一个sql语句&…...
黑客技术(网络安全)—小白自学
目录 一、自学网络安全学习的误区和陷阱 二、学习网络安全的一些前期准备 三、网络安全学习路线 四、学习资料的推荐 想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客! 网络安全可以基于攻击和防御视角来分类&am…...
免登陆 同步脚本 zookeeper kafka集群详细安装步骤
一.免登陆配置 #修改注解名 vim /etc/hostname #修改host文件 vim /etc/hosts 192.168.1.10 kafka1 kafka1 192.168.1.11 kafka2 kafka2 192.168.1.12 kafka3 kafka3#免登陆生成秘钥和授权自动登陆 ssh-keygen -t rsa cd ~/.ssh shh-copy-id kafka1 shh-copy-id kafka2 shh-co…...
深入理解NLP
引子 自然语言处理(Natural Language Processing, NLP)是人工智能领域中的一个重要研究方向,它涉及了计算机与人类自然语言之间的交互和理解。 1. NLP的起源与发展 NLP的起源可以追溯到早期的机器翻译项目,随着科技的进步&…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...
【java】【服务器】线程上下文丢失 是指什么
目录 ■前言 ■正文开始 线程上下文的核心组成部分 为什么会出现上下文丢失? 直观示例说明 为什么上下文如此重要? 解决上下文丢失的关键 总结 ■如果我想在servlet中使用线程,代码应该如何实现 推荐方案:使用 ManagedE…...
【记录坑点问题】IDEA运行:maven-resources-production:XX: OOM: Java heap space
问题:IDEA出现maven-resources-production:operation-service: java.lang.OutOfMemoryError: Java heap space 解决方案:将编译的堆内存增加一点 位置:设置setting-》构建菜单build-》编译器Complier...
深入理解 C++ 左值右值、std::move 与函数重载中的参数传递
在 C 编程中,左值和右值的概念以及std::move的使用,常常让开发者感到困惑。特别是在函数重载场景下,如何合理利用这些特性来优化代码性能、确保语义正确,更是一个值得深入探讨的话题。 在开始之前,先提出几个问题&…...
软件工程教学评价
王海林老师您好。 您的《软件工程》课程成功地将宏观的理论与具体的实践相结合。上半学期的理论教学中,您通过丰富的实例,将“高内聚低耦合”、SOLID原则等抽象概念解释得十分透彻,让这些理论不再是停留在纸面的名词,而是可以指导…...
Amazon RDS on AWS Outposts:解锁本地化云数据库的混合云新体验
在混合云架构成为企业数字化转型标配的今天,如何在本地数据中心享受云数据库的强大能力,同时满足数据本地化、低延迟访问的严苛需求?Amazon RDS on AWS Outposts 给出了完美答案——将AWS完全托管的云数据库服务无缝延伸至您的机房࿰…...
网络安全问题及对策研究
摘 要 网络安全问题一直是近年来社会乃至全世界十分关注的重要性问题,网络关乎着我们的生活,政治,经济等多个方面,致力解决网络安全问题以及给出行之有效的安全策略是网络安全领域的一大目标。 本论文简述了课题的开发背景&…...
