1023记录
米哈游二面
自动化测试中自动化驱动的能力?
pytest的驱动能力:
1,自动发现测试用例:以"test_"开头的Python文件、以"Test"开头的类和以"test_"开头的函数,将它们识别为测试用例
2,灵活的测试收集:@pytest.mark.parametrize实现参数化测试,使用@pytest.mark.skip跳过某些测试,使用@pytest.mark.xfail标记预期失败的测试,
3,断言支持:assert,assertEqual,assertTrue
4,丰富的插件生态系统:pytest-allure,pytest-xdist、pytest-cov,pytest-rerunfailures
5,并行化执行:pytest-xdist -n 多cpu并行执行。
6,丰富的测试报告:allure,html测试报告
如何理解手工测试和自动化测试?
1,相辅相成的关系,可以结合使用,根据具体的测试需求和资源限制来选择合适的测试方法。
2,二者可使用的测试场景不同:手工测试适用于一些场景,如探索性测试、用户体验测试、边界条件测试等,以及一些难以自动化的测试任务。自动化测试通常适用于需要频繁执行、回归测试、性能测试等场景,以及一些可重复和可预测的测试任务。
给了一个新需求,测试的流程是怎样的?
1,需求分析:仔细阅读和理解给定的新需求。与相关的项目团队成员(如业务分析师、产品经理)一起讨论需求的细节和期望的功能行为。
2,编写测试计划:根据需求分析结果,编写测试计划。测试计划应包括测试目标、测试范围、测试资源、测试环境、测试策略、测试方法和测试进度等内容。
3,制定测试用例:基于需求分析和测试计划,编写测试用例来覆盖新功能的各种情况和边界条件。测试用例应包括输入数据、预期结果和执行步骤。
4,准备测试环境:确保测试环境满足新功能的测试要求。这可能涉及设置测试数据库、配置测试服务器或模拟特定的外部系统等。
5,执行测试用例:按照测试计划和测试用例的要求,逐个执行测试用例。记录测试执行过程中的输入、输出和观察到的结果。
6,缺陷追踪:对于发现的缺陷,使用缺陷追踪系统(如JIRA、Bugzilla等)进行记录和跟踪。提供详细的缺陷描述、重现步骤和附加信息,以便开发团队进行修复。
7,回归测试:如果有其他已有功能或相关模块受到新需求的影响,执行回归测试以确保新功能的引入没有破坏现有功能。
8,评估和报告:评估测试结果,根据测试执行情况和缺陷统计生成测试报告。报告应包含已执行的测试用例数量、通过和失败的测试用例数量、缺陷统计和风险评估等信息。
现有功能上线之后,后续测试流程?
1,针对以往功能跑一遍回归测试,确保新引入的功能不会对原有的功能产生影响。
2,对集成的新功能进行测试,确保新功能可用。
3,缺陷管理,对测试新功能或者回归测试中的问题进行管里。
4,封版前,对新功能进行回归测试。确保新功能没有问题。
如何抽取测试用例为自动化测试用例?怎么判断?
1,重复执行的测试用例
2,高风险和关键功能,
3,可重复性和可靠性
4,可验证性和可回归性的测试用例
在用现有的问题去做自动化的时候,又遇到比较深刻的问题吗?
测试的时候,准入准出的标准?准入=提测,准出=测试通过
测试准入标准如下:
(1)开发编码结束,开发人员在开发环境中已经进行了单元测试,即开发人员完成自测。
(2)软件需求上规定的功能都已经实现。如果没有完全实现,开发人员提供测试范围。
(3)测试项目通过基本的冒烟测试,界面上的功能均已经实现,符合设计规定的功能。
(4)被测试项目的代码符合软件编码规范并已通过评审。
(5)开发人员提交了测试申请并提供了相应的文档资料。
测试准出标准如下:
(1)测试项目满足客户需求。
(2)所有测试用例都已经通过评审并成功执行。
(3)测试覆盖率已经达到要求。
(4)所有发现的缺陷都记录在缺陷管理系统。
(5)一、二级错误修复率达到100%。
(6)三、四级错误修复率达到了95%。
(7)所有遗留问题都有解决方案。
(8)测试项目的功能、性能、安全性等都满足要求。
(9)完成系统测试总结报告。
mock测试?
含义:Mock测试是一种测试方法,通过模拟(Mock)外部依赖或复杂的组件,来隔离被测试单元的行为,以便更专注地测试目标单元的功能。
框架:Python的unittest.mock
1,创建mock对象
2,创建测试对象,将mock对象注入
3,调用测试对象中的方法进行测试
4,验证Mock对象的方法调用和参数传递assert_called_once_with()
5,验证返回值
fiddler的使用场景:
- 调试HTTP请求和响应:Fiddler可以捕获和显示应用程序发送和接收的HTTP请求和响应,包括请求头、请求体、响应头、响应体等。通过查看这些信息,您可以分析请求和响应的内容、头部信息、状态码等,有助于识别问题和调试错误。
- 模拟网络环境:Fiddler允许您模拟不同的网络环境,例如低速连接()、高延迟()、丢包()等。通过模拟这些网络条件,您可以测试应用程序在不同网络环境下的性能和稳定性,以确保应用程序在真实网络环境中的良好表现。
- 改请求和响应:Fiddler提供了修改请求和响应的功能,您可以修改请求头、请求体、响应头、响应体等,并观察应用程序对修改的响应。这对于测试特定情况下的应用程序行为、调试安全性问题或进行API集成测试非常有用。
- 排查性能问题:Fiddler可以帮助您分析网络请求的性能,包括请求的延迟、传输时间、页面加载时间等。通过查看这些性能指标,您可以识别潜在的性能问题,例如慢速请求、多次请求等,并进行优化和改进。
如何使fiddler抓取https的接口
1,下载https证书
2,配置https的证书
3,在tools - options-https中配置抓取https的请求
4,在浏览器中设置fiddler代理。
1<x<=100,等价类设计?边界值设计?
边界值测试:
输入边界值测试:测试最小输入值1和最大输入值100。
边界内测试:测试2、99等边界内的值。
等价类测试:
选择一个等价类的最小值:测试1。
选择一个等价类的最大值:测试100。
选择一个等价类的中间值:测试50。
选择一个等价类的其他值:测试2、5、10、20等。
https的常用方法:
GET方法:用于从服务器获取资源。GET请求将参数附加在URL的查询字符串中,并在请求头中以明文形式发送。
POST方法:用于向服务器提交数据。POST请求将参数包含在请求体中,并在请求头中以明文形式发送。
PUT方法:用于向服务器上传或替换资源。PUT请求将请求体中的数据上传到指定的URL,并用该数据替换服务器上对应的资源。
DELETE方法:用于请求服务器删除指定的资源。
HEAD方法:类似于GET方法,但只返回响应头,不返回实际响应体。主要用于获取资源的元数据信息。
OPTIONS方法:用于请求服务器返回支持的HTTP方法和其他可用选项。
深圳市腾娱互动科技有限公司
自动化测试用例怎么做的?(用例如何设计)?
创建两个py文件,一个用来定位元素,执行元素的操作,一个用来编写具体的测试用例
1,创建测试类
2,定义测试方法
1,元素定位以及路径
2,对页面元素执行的操作,以及用例涉及的逻辑处理,比如创建用户,需要输入用户名,邮箱,点击创建按钮,断言 创建结果
接口如何测试?
1,分析接口文档(如果没有接口文档,需要自己通过抓包工具获取接口的请求参数)
2,设计相关测试用例:请求参数的必填,格式要求等
3,准备测试环境
4,执行测试用例
5,缺陷创建,沟通,跟踪,验证
6,注意异常数值的处理
参数合法不合法如何考虑
1,根据需求确定合法的参数范围,并再次基础上编写测试用例。
2,编写测试用例,设计出合法的参数用例以及不合法的参数用例。
比如?参数必须是整形,设计相关用例
1,正常值:正整数
2,边界值:-2147483648(32位有符号整数的最小值);2147483647(32位有符号整数的最大值)
3,非法值:负整数,浮点数,字符串,布尔值,特殊字符
4,多值测试:
5,性能和负载,传递大量整数值的数组
如何带领团队做回归的?
为什么是我来带领大家做?
元神中新增了一个角色,如何设计相关测试用例?
角色属性测试:例如角色名称、等级、生命值、攻击力等。、
角色能力测试:包括攻击技能、防御技能、辅助技能等。
角色界面测试:包括角色模型、头像、描述信息等。
角色升级测试:验证角色升级后属性、能力等是否按照预期变化。
角色装备测试:是否能够正常穿戴装备,例如武器、护甲、饰品等,测试装备对角色属性和能力的影响是否正确,例如攻击力增加、防御力提升等。
角色交互测试:NPC对话、与其他玩家进行交互等。
角色存储和加载测试:包括保存角色数据、读取角色数据等。
角色性能和稳定性测试:进行角色的性能和稳定性测试,验证角色在大量数据或高负载情况下的表现。
发现一个问题怎么去推进?
需求问题:
缺陷问题:
缺陷有歧义如何解决?
知迪汽车
1,虚拟内存和物理内存的区别
1,定义:
物理内存(也称为主存或实际内存)是计算机系统中实际存在的硬件内存,用于存储正在执行的程序和数据。
虚拟内存是计算机系统中的一种抽象概念,它扩展了物理内存的容量,使得程序可以访问比实际可用物理内存更大的地址空间
2,大小
物理内存的大小是硬件决定的,通常以字节为单位,可以根据计算机系统的配置进行扩充或减少。
虚拟内存的大小可以比物理内存大得多,它可以通过操作系统的管理机制,将部分数据和程序存储在磁盘上,以释放物理内存并提供更大的地址空间。
3,访问速度
物理内存的访问速度比较快,因为它直接与处理器相连,数据可以通过内存控制器快速读取和写入。
虚拟内存的访问速度相对较慢,因为数据需要从磁盘上的虚拟内存页面(页)中加载到物理内存中才能被处理器访问。
4,空间分配
物理内存的空间是有限的,由操作系统分配给不同的程序和进程。
虚拟内存的空间是逻辑上连续的,可以超过物理内存的容量,由操作系统管理和分配。
5,内存管理
物理内存的管理包括分配、回收和维护内存的数据结构,以保证程序可以正确访问和使用内存。
虚拟内存的管理包括将虚拟地址映射到物理地址的转换,页面置换算法用于将磁盘上的页面加载到物理内存中,并进行页面替换。
6,缺页管理
当程序访问的数据在物理内存中不存在(即缺页)时,处理器会触发缺页中断,操作系统会将相应的页面从磁盘加载到物理内存中。
虚拟内存中的缺页中断会导致页面置换操作,将不常用的页面从物理内存中替换出来,以便为新的页面腾出空间。
2,App monkey测试的时候,如何确定问题发生在哪里?log?
1,日志分析
2,错误报告和崩溃日志
3,运行日志
4,重现步骤
3,操作系统:堆和栈的区别
堆和栈在内存管理和数据存储方面有着不同的特点。堆适用于动态分配和释放内存,并且可以在程序的任何地方访问,而栈适用于临时存储局部变量和函数调用的上下文信息,具有自动分配和释放的特性。
5,如何确保CPU中的进程是游戏相关的?
1,进程查找,ps,top,htop
2,进程资源占用:使用命令如top或htop按照CPU利用率或内存占用进行排序,寻找占用较高的进程并检查其名称和描述信息。
3,进程关联性:使用命令如pstree或pgrep来查看进程之间的关系和依赖关系
4,进程标识:进程名称,进程id(PID)
5,进程监控工具:GameMode可以自动检测游戏进程并应用相关的性能设置
6,分布式渲染如何测试?
延申:
fiddler的回放功能?
clumsy弱网测试
相关文章:
1023记录
米哈游二面 自动化测试中自动化驱动的能力? pytest的驱动能力: 1,自动发现测试用例:以"test_"开头的Python文件、以"Test"开头的类和以"test_"开头的函数,将它们识别为测试用例 2&…...
【并发编程JUC】AQS详解
定义理解 AQS,全称为AbstractQueuedSynchronizer,是Java并发包(java.util.concurrent)中的一个框架级别的工具类,用于构建锁和同步器。它是许多同步类的基础,如ReentrantLock、Semaphore、CountDownLatch等…...
如何找BMS算法、BMS软件的实习
之前一直忙,好久没有更新了,今天就来写一篇文章来介绍如何找BMS方向的实习,以及需要具备哪些条件,我的实习经历都是在读研阶段找的,读研期间两段的实习经历再加上最高影响因子9.4分的论文,我的秋招可以说是…...
AR视频技术与EasyDSS流媒体视频管理平台:打造沉浸式视频体验
随着增强现实(AR)技术的飞速发展,其在各个领域的应用日益广泛。这项技术通过实时计算摄影机影像的位置及角度,将虚拟信息叠加到真实世界中,为用户带来超越现实的感官体验。AR视频技术不仅极大地丰富了我们的视觉体验&a…...
每天一个数据分析题(三百九十九)- 逻辑回归
逻辑回归中,若选0.5作为阈值区分正负样本,其决策平面是( ) A. wxb= 0 B. wxb= 1 C. wxb= -1 D. wxb= 2 数据分析认证考试介绍:点击进入 题目来源于CDA模拟题库 点…...
【ARMv8/v9 GIC 系列 5.2 -- GIC 分组介绍:Group 0 |Group 1| Non-Secure Group 1】
请阅读【ARM GICv3/v4 实战学习 】 文章目录 GIC Interrupt grouping中断分组配置寄存器GIC 中断分组介绍Group 0(安全组0)Group 1(安全组1)Non-Secure Group 1(非安全组1)总结及例子GIC Interrupt grouping ARM GICv3 通过中断分组机制,与ARMv8异常模型和安全模型进行…...
前端代码规范 - 日志打印规范
在前端开发中,随着项目迭代升级,日志打印逐渐风格不一,合理的日志输出是监控应用状态、调试代码和跟踪用户行为的重要手段。一个好的日志系统能够帮助开发者快速定位问题,提高开发效率。本文将介绍如何在前端项目中制定日志输出规…...
C# 类型转换之显式和隐式
文章目录 1、显式类型转换2. 隐式类型转换3. 示例4. 类型转换的注意事项5. 类型转换的应用示例总结 在C#编程中,类型转换是一个核心概念,它允许我们在程序中处理不同类型的数据。类型转换可以分为两大类:显式类型转换(Explicit Ca…...
Ubuntu多显示器设置不同缩放比例
Ubuntu多显示器设置不同缩放比例 设备问题解决方案 设备 笔记本屏幕分辨率为2560 \times 1600,外接显示器的分辨率为3840 \times 2160。 问题 Ubuntu默认的显示器设置中,缩放仅能选择100%,200%,300%,400%。假…...
以太网协议介绍——UDP
注:需要先了解一些以太网的背景知识,方便更好理解UDP协议、 以太网基础知识一 以太网基础知识二 UDP协议 UDP即用户数据报协议,是一种面向无连接的传输层协议,属于 TCP/IP 协议簇的一种。UDP具有消耗资源少、通信效率高等优点&a…...
FFMpeg rtmp 无压缩推送本地yuv文件 压缩推送本地yuv文件
可以借鉴的:C使用FFmpeg实现YUV数据编码转视频文件_C 语言_脚本之家 yuv文件下载地址:YUV Sequences 无压缩的方式推送本地yuv文件 代码: #include <stdio.h> #include <unistd.h> #include <iostream> extern "C&…...
PostgreSQL LIMIT 子句
PostgreSQL LIMIT 子句 PostgreSQL 是一种功能强大的开源对象关系数据库管理系统,广泛用于各种应用中。在处理大量数据时,我们通常只需要检索部分记录,而不是整个数据集。这时,LIMIT 子句就变得非常有用。本文将详细介绍 Postgre…...
误删分区后的数据拯救:双管齐下恢复策略
在数字化时代,数据的价值日益凸显,而误删分区作为常见的数据安全威胁之一,常常让用户措手不及。本文将深入探讨误删分区的现象,并为您揭示两种高效的数据恢复方案,旨在帮助您在最短时间内找回失去的数据,同…...
git 添加本地分支, clean
//以develop为源创建本地分支fromdevelop git checkout -b fromdevelop git add . git commit -m "local" git checkout -b local/dev //切换到远程分支. git checkout dev git clean_git clean -f -d-CSDN博客 git clean -f -d #删除当前目录下没有被track…...
Linux:进程间通信(一.初识进程间通信、匿名管道与命名管道、共享内存)
上次结束了基础IO:Linux:基础IO(三.软硬链接、动态库和静态库、动精态库的制作和加载) 文章目录 1.认识进程间通信2.管道2.1匿名管道2.2pipe()函数 —创建匿名管道2.3匿名管道的四种情况2.4管道的特征 3.基于管道的进程池设计4.命…...
QML-各类布局
Colunm布局 Column{id:colspacing: 30Repeater{id:repmodel: ListModel{}Button{width: 100height: 50text: "btn"index}}//开始时候移动move: Transition {NumberAnimation { properties: "x,y"; easing.type: Easing.OutBounce }}//添加时变化add:Transi…...
el-table封装点击列筛选行数据功能,支持筛选,搜索,排序功能
数据少的话,可以前端实现,如果多的话,建议还是请求接口比较合理父组件: <template> <div class"home"> <!-- <img alt"Vue logo" src"../assets/logo.png"> <HelloWorld …...
【SpringBoot3学习 | 第1篇】SpringBoot3介绍与配置文件
文章目录 前言 一. SpringBoot3介绍1.1 SpringBoot项目创建1. 创建Maven工程2. 添加依赖(springboot父工程依赖 , web启动器依赖)3. 编写启动引导类(springboot项目运行的入口)4. 编写处理器Controller5. 启动项目 1.2 项目理解1. 依赖不需要写版本原因2. 启动器(Starter)3. Sp…...
SpringBoot整合Dubbo的快速使用教程
目录 一、什么是Dubbo? 二、SpringBoot整合Dubbo 1、父工程引入依赖 2、各个Dubbo服务子模块引入依赖 3、服务提供者 (1)启动类添加注解EnableDubbo (2)服务类添加注解DubboService (3)配置文件…...
昇思25天学习打卡营第12天| 基于MindNLP+MusicGen生成自己的个性化音乐
之前都是看图文类的东西,今天体验一点不一样的。来点听力的内容。 mindspore有音乐生成模型MusicGen,MusicGen支持两种生成模式:贪心(greedy)和采样(sampling)。在实际执行过程中,采…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
