2023最新接口自动化测试面试题

news2024/11/25 2:57:13

1、get和post的区别?

l http是上层请求协议,主要定义了服务端和客户端的交互规格,底层都是tcp/ip协议

l Get会把参数附在url之后,用?分割,&连接不同参数,Get获取资源,post会把参数放置在http请求体中,Post发送请求数据

l Get产生一个tcp数据包,post产生两个tcp数据包

l Get请求,浏览器会把http header和data一起发送,服务器返回200响应码

l Psot请求,浏览器先发送header,服务器响应100(continue),然后再发送data,服务器返回200响应码

l Post的安全性比get高,如果浏览器缓存了,会把get参数留在缓存中,用户可以看到参数信息

2、post请求的四种参数形式是什么?


Application/x-www-form-urlencoded:将参数以一组键对值的方式发送

Multipart/form-data:支持单组和多组文件上传

Application/json:根据后端接口的定义支持数据类型

Text/xml

3、http状态码302, 403, 503分别代表什么?

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

403:权限不够 服务器理解客服端的请求,但拒绝此请求

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

500:服务端异常

404:请求失败,请求所希望得到的资源未被在服务器上发现

401:请求身份验证

1XX系列:指定客户端应相应的某些动作,代表请求已被接受,需要继续处理

2XX系列:代表请求已成功被服务器接收、理解、并接受。这系列中最常见的有200、201状态码。

3XX系列:代表需要客户端采取进一步的操作才能完成请求,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。这系列中最常见的有301、302状态码。

4XX系列:表示请求错误。代表了客户端看起来可能发生了错误,妨碍了服务器的处理。常见有:401、404状态码。

5xx系列:代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。常见有500、503状态码。

4、公司有用到第三方服务,出了问题,打电话给第三方,第三方不承认,这时候日志又显示不到错误,应该怎么处理?

1/ 单独调用第三方服务,查看三方接口返回的status,code,msg,看是否能支持正常服务

2/ 在自己的应用中mock第三方服务,来调用自己的接口,看能否正常工作,将结果反馈给第三方

3/ 配置日志级别在debug级别时,添加第三方请求过程的日志,查看入口,响应来追踪问题

5、接口自动化中的关联怎么处理?

把上一个请求返回的结果传入到下一个请求的参数中,将请求的结果反射到一个类属性(使用setattr()函数),下一个请求去调用这个类属性

6、自动化测试怎么校验结果?

断言 ,预期结果与实际结果对比

数据库校验,根据测试场景来查询数据库里的数据和请求之前的数据进行比对

7、自动化使用的测试框架是什么?简述自动化框架的设计、维护

1/测试框架: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:持续集成

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、持续集成,定时构建,快速反馈

8、具体的在这个项目中自动化怎么应用到实际的,您对自动化结果的分析

完成所有的自动化测试框架的设计和实现后,进行接口测试,然后集成到jenkins,配置定时执行,生成html报表,查看测试通过率,查看接口的功能

每次发版时,进行回归测试,新功能开发未提测前

9、做好测试计划的关键是什么?

明确测试目的,增强测试计划的实用性,保证测试用例的实用性和覆盖率,完全需求文档和规格指标书等,严格界定测试周期,测试轮次,测试覆盖模块等

20200617天喻软件初面:

1.post,get请求的区别

2.接口测试用例的重点

3.接口之间的关联怎么做

4.cookies怎么存储

5.并发时,cookies,token如何处理

6.三方接口故障时,如何处理

7.如何开展接口自动化,框架是自己搭建的吗?

九州通初面

10、接口测试和功能测试的不同

2、接口测试中的重点

3、如何开展接口自动化测试的---框架如何设计的

4、离职的原因

5、职业倾向:接口,性能,功能,底层的技术含量更高?

最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

  全套资料获取方式:点击下方小卡片自行领取即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1091710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python安装和环境配置教程

进官网根据不同的操作系统,下载适合自己的编译环境(在百度里直接输入Python) 选择安装包(我选择的是3.8.0版本) python官方下载目录中有好多种安装方式,一般情况选择Windows x86-64 executable installer …

酒水茶叶经营小程序商城的作用是什么

酒水茶叶的用户群体非常广,其价格从低到高覆盖了很多人群,对酒厂茶商或经销商来说,在市场高需求的同时,其所遇经营难题也比较明显。 通过【雨科】平台搭建酒水茶叶商城,实现商品线上自营售卖,电脑手机端小程…

缩短从需求到上线的距离:集成多种工程实践的稳定框架 | 开源日报 No.55

zeromicro/go-zero Stars: 25.7k License: MIT go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。 go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 api 文件一键生成…

【git】500 Whoops, something went wrong on our end.

在访问公的的git 时出现了500错误提示. 500 Whoops, something went wrong on our end. 哎呀,我们这边出了问题。 TMD 出了什么问题了???一脸懵逼。 登录git 服务器。 查看git的状态。 命令: gitlab-ctl statu…

【AI视野·今日Sound 声学论文速览 第二十四期】Thu, 12 Oct 2023

AI视野今日CS.Sound 声学论文速览 Thu, 12 Oct 2023 Totally 12 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers Enhancing expressivity transfer in textless speech-to-speech translation Authors Jarod Duret LIA , Benjamin O Brien LIA , Yanni…

【C++】 局部对象,引用返回

1、new 关键字 会在堆内申请空间,如果仅仅是普通调用构造函数,不会在堆内开辟空间。 2、函数调用会形成栈帧,进行压栈操作,函数调用结束,会进行弹栈。 函数内的局部对象,会随着弹栈,而被销毁(…

关于github申请学生认证-卡在证明上传环节解决方案

在持有学信网英语翻译(30)某宝请人代注册(80) 通过github security log和聊天记录我大致猜想了下做法,前面的学校邮箱其实都好说主要是下面的那个上传照片的环节卡了我很久

生活空间中,餐桌该如何选择?福州中宅装饰,福州装修

餐桌设计 如何选择 不同的餐桌,定义不同的餐桌礼仪 在家的装修设计上, 很多人的关注点是这样的: 玄关收纳要强、客厅颜值要高、阳台功能要全、厨房要好用、卧室要舒适......餐厅、几把椅子一张长桌,够了吧。 餐厅说:“…

20.2 FMC驱动SDRAM的时序初始化实现及内存测试

继续上一篇的话题,写到SDRAM通过CubeMx配置后,在工程代码编写时直接引用的是我事先写好的时序初始化、内存测试文件,而未对其进行详细的解释,所以本篇文章就来娓娓道来。不多说,开始吧 SDRAM的初始化流程简述 SDRAM初…

在不同版本的linx编译erLang时出现./configure使用--prefix指定路径后,总在指定的另前多了/usr/local路径

昨天别的项目同事遇到一个编译遇到在不同linx版本下编译erLang的源码时,其中有一个版本的编译出现在./configure时加入---prefix指定编译后的安装目录,总会在指定的安装另前多了/usr/local的目录,导致无法源码安装到普通用户指定的目录 安装…

目录启示:使用 use 关键字为命名空间内的元素建立非限定名称

文章目录 参考环境三种名称非限定名称限定名称完全限定名称举个栗子 useuse 关键字use ... as .. 命名冲突真假美猴王两个世界 参考 项目描述搜索引擎Bing、GoogleAI 大模型文心一言、通义千问、讯飞星火认知大模型、ChatGPTPHP 官方PHP ManualPHP 官方language.namespaces.ra…

乐器经营商城小程序的作用是什么

乐器产品覆盖的人群非常广,小学生、老年人都有不小需求,也因此市场中的从业商家相对较多,产品丰富可供消费者选购,然而在实际经营中,线上线下面临痛点不少。 通过【雨科】平台搭建乐器小程序商城,将所有产品…

数据中心机房供电配电及能效管理系统设计

安科瑞虞佳豪壹捌柒陆壹伍玖玖零玖叁 摘要:现代的数据中心中都包括大量的计算机,对于这种场所的电力供应,都要求供电系统需要在所有的时间都有效,这就不同于一般建筑的供配电系统,它是一个交叉的系统,涉及…

力扣第108题 将有序数组转二叉搜索树 c++

题目 108. 将有序数组转换为二叉搜索树 简单 相关标签 树 二叉搜索树 数组 分治 二叉树 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树…

Python基础教程:print输出带颜色的方法详解

嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 书写格式: 开头部分:\033[显示方式;前景色;背景色m 结尾部分:\033[0m 注意: 开头部分的三个参数:显…

Android ViewBinding和DataBinding功能作用区别

简述 ViewBinding和DataBinding都是用于在 Android 应用程序中处理视图的工具,但它们有不同的作用和用途。 ViewBinding: ViewBinding 是 Android Studio 的一个工具,用于生成一个绑定类,能够轻松访问 XML 布局文件中的视图。ViewBinding 为…

整理mongodb文档:搭建分片集群

个人博客 整理mongodb文档:搭建分片集群 分片集群在MongoDB中的的使用并没有那么多,更多的还是副本集,所以本文就不讲解那么多,只是搭建一个最基本的分片集群,让大家有个了解。个人公众号,求关注。 文章概叙 本文主…

光储直流微电网MATLAB/Simulink仿真

微❤关注“电击小子程高兴的MATLAB小屋”获得资料(专享优惠) MATLAB代码:光储直流微电网MATLAB/Simulink仿真 仿真软件:MATLAB2018b 光储并网直流微电网simulink仿真模型,光伏采用mppt实现最大功率输出。 图1 整体仿…

力扣-448.找到所有数组中消失的数字

Idea 模拟 class Solution { public:vector<int> findDisappearedNumbers(vector<int>& nums) {int n nums.size();vector<int> a(n 1, 0);for(int i : nums) a[i];vector<int> ans;for(int i 1; i < n; i) if(!a[i]) ans.emplace_back(i);r…

【Java】jdk9为何要将String的底层实现由char[]改为byte[]

问题&#xff1a;从jdk9 String 的底层实现由 char[] 改为了 byte[] 答案&#xff1a;节省 String 占用 jvm 的内存空间 JDK1.8 String类型底层实现 基于 char[] 类型数组实现 JDK1.9开始 String类 底层实现 char[] 类型数组改为 byte[],下面的是JDK11 下一篇文章&#xff1a; …