接口/自动化测试 面试集合
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接口自动化测试实战教程全集(实战最新版)
相关文章:
接口/自动化测试 面试集合
1. apache和nginx的区别? Nginx相对Apache的优点: 轻量级,同样起web服务,比apache占用更少的内存及资源; 抗并发,nginx处理请求是异步非阻塞的,支持更多的并发连接,而apache则是阻塞型的,在高 并发下ngi…...
菜鸡勇闯第136场双周赛
菜鸡鼓足了勇气报名了力扣双周赛(后来复盘才知道双周赛更难一点,我真是头铁。。) 没想到还拿了个竞赛名次哈哈哈哈哈还在前50%,小力它真的,我哭死 为什么我本科被高数老师忽悠,去打了两年数模o(≧口≦)o 每…...
趋动科技陈飞:从小模型到大模型,AI时代下的数据中心建设
自AI大模型横空出世,不断推动着AI从学术界到产业界向大众破圈,新的时代正在来临。11月15-16日,由CDCC主办的“2023第11届数据中心标准大会”在北京国家会议中心盛大开幕。 本届大会的主题围绕“AI时代 重塑未来”,聚焦数据中心领…...
yolo v8 + flask部署到云服务器,以及问题记录
环境安装 1、运行项目报错:no python application found, check your startup logs for errors 在云服务器pytorch版本安装错了,安装了GPU版本,需要安装CPU版本 # CPU only 使用下面这段代码避免出现第二个错误 pip install torch2.3.1 to…...
【科研必备插件】easyscholar如何使文章显示期刊影响因子与分区等级
简要介绍 EasyScholar 是一个微软 Edge 浏览器的扩展程序,可以显示会议、期刊等级。可支持在各大论文搜索网站,显示各种期刊、会议等级排名 要想你的知网页面如下图所示,快来获取安装,快速科研有方法 插件安装教程 ①打开浏览器…...
UE5 UrlEncode转换
调用接口时用到了 UFUNCTION(BlueprintPure, Category "FuncLib", meta (Keywords "URL1"))static FString StringToURLEncode(const FString& str1);FString UBasicFuncLib::StringToURLEncode(const FString& str1){return FGenericPlatformH…...
【QML】Qt.rgba()的正确使用方法
1. 问题 设置颜色 color: Qt.rgba(65,105,225,255) ,应该是蓝色,却显示白色。 2. 正确方法 //正确代码 color: Qt.rgba(65/255, 105/255, 225/255, 255/255)...
centos7.9 docker安装
1、不要通过yum直接安装 具体原因: CentOS 6 因内核太旧,即使支持安装 docker,但会有各种问题,不建议安装CentOS 7 的 extras 源虽然可以安装 docker,但包比较旧,建议从官方源或镜像源站点下载安装 docke…...
spring操作数据库
xml版 程序结构 配置文件 dbUtil-阿帕奇提供操作数据库的插件 核心类:QueryRunner .query() 查询 .update() 增删改 <dependencies><!-- spring --><dependency><groupId>org.springframework</groupId><artifactId>spri…...
Apache Flink中TaskManager,SubTask,TaskSlot,并行度之间的关系
Apache Flink 中Application 与 Job 一个完整的Flink Application 一般组成如下: Source 数据来源Transformation 数据转换处理等Sink 数据传输 Flink 中一个或者多个Operator(算子)组合对数据进行转换形成一个 Transformation,一…...
马斯克xAI新计划:人工智能模型Grok 2测试版即将发布
特斯拉CEO马斯克在X平台上表示,人工智能模型Grok 2测试版即将发布。Grok,作为xAI公司的明星大语言模型,其首代产品Grok 1已凭借神经演化计算与深度学习技术的深度融合,展现了超乎想象的学习速度与智能深度,赢得了业界的…...
【机器人学】6-4.六自由度机器人运动学参数辨识-机器人精度验证【附MATLAB代码】
前言 前两个章节以及完成了机器人参数辨识。 【机器人学】6-1.六自由度机器人运动学参数辨识-辨识数学模型的建立 【机器人学】6-2.六自由度机器人运动学参数辨识-优化方法求解辨识参数 这里我们认为激光测量仪测量到的数据为机器人实际到达的位置,而机器人理论到…...
分销商城小程序系统渠道拓展
线上卖货渠道很多,想要不断提高营收和新客获取,除了自己和工具本身努力外,还需要其他人的帮助来提高商城店铺的整体销量。 搭建saas商城系统网站/小程序,后台上货,设置支付、配送、营销、精美模板商城装修等内容&…...
WPF篇(14)-ProgressBar进度条+Calendar日历控件+DatePicker日期控件
ProgressBar进度条 ProgressBar进度条通常在我们执行某个任务需要花费大量时间时使用,这时可以采用进度条显示任务或线程的执行进度,以便给用户良好的使用体验。 ProgressBar类定义 public class ProgressBar : RangeBase {public static readonly De…...
链表高频题目和必备技巧
链表高频题目和必备技巧 1. 链表类题目注意点 1,如果笔试中空间要求不严格,直接使用容器来解决链表问题 2,如果笔试中空间要求严格、或者在面试中面试官强调空间的优化,需要使用额外空间复杂度**O(1)**的方法 3,最…...
Vue3详细介绍,正则采集器所用前端框架
Vue3 引入了一个全新的响应式系统,它是基于ES6的Proxy特性构建的。这个系统使得 Vue 能够更加高效地追踪数据的变化,并在数据发生变化时自动更新DOM。响应式系统的核心是"可观察",当数据变化时,视图会响应这些变化并重新…...
数据集--COCO2017(快速下载)
1、数据集介绍 数据集官网:https://cocodataset.org/#home COCO(Common Objects in Context)数据集是计算机视觉领域中最广泛使用的数据集之一,主要用于目标检测、分割和图像标注任务。COCO 数据集由 Microsoft 发布,…...
【管理咨询宝藏159】顶级咨询公司人力三支柱建设方案思路
阅读完整版报告内容,请搜索VV号“管理咨询宝藏”。 【管理咨询宝藏159】顶级咨询公司人力三支柱建设方案思路 【格式】PDF版本 【关键词】人力咨询、三支柱、人力体系 【核心观点】 - 集团总部制定全集团共享中心总体规划路径,组织并负责实施与推广。各…...
跨时钟域总结
跨时钟域总结 秋招学习跨时钟域 总结一下吧 异步电路 设计中有两个频率不同的时钟(也可能多个),而有数据在两组时钟之间传输 单bit跨时钟域 慢时钟域数据-> 快时钟域 方法 : 使用两个锁存器 (打两拍) 数据跨时钟域同步过程中,脉冲宽度会改变,不影响同步结…...
富婆和富公子都在看的负载均衡和Haproxy大全
一.负载均衡 1.1:什么是负载均衡 负载均衡: Load Balance ,简称 LB ,是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均 衡将特定的业务(web 服务、网络流量等 ) 分担给指定的一个或多个后端特定的服务器或…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...
