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)。在实际执行过程中,采…...

代理设计模式和装饰器设计模式的区别
代理设计模式: 作用:为目标(原始对象)增加功能(额外功能,拓展功能) 三种经典应用场景: 1:给原始对象增加额外功能(spring添加事务,Mybatis通过代理实现缓存功能等等) 2:远程代理(网络通信,输出传输(RPC,D…...

[Microsoft Office]Word设置页码从第二页开始为1
目录 第一步:设置页码格式 第二步:设置“起始页码”为0 第三步:双击页码,出现“页脚”提示 第四步:选中“首页不同” 第一步:设置页码格式 第二步:设置“起始页码”为0 第三步:双…...

【C++】日期类
鼠鼠实现了一个日期类,用来练习印证前几篇博客介绍的内容!! 目录 1.日期类的定义 2.得到某年某月的天数 3.检查日期是否合法 4.(全缺省)构造函数 5.拷贝构造函数 6.析构函数 7.赋值运算符重载 8.>运算符重…...

力扣热100 滑动窗口
这里写目录标题 3. 无重复字符的最长子串438. 找到字符串中所有字母异位词 3. 无重复字符的最长子串 左右指针left和right里面的字符串一直是没有重复的 class Solution:def lengthOfLongestSubstring(self, s: str) -> int:# 左右指针leftright0ans0#初始化结果tablecolle…...

三万字带你一遍跑通uer
三万字带你一遍跑通uer 参考文档 今天给大家介绍个非常强大的项目uer,集成了许多可以做自然语言的东西,效果的话也非常好,很适合企业级的应用! 1. 先将项目uer从github拉取下来(zip或git都ok) 2. 用pycha…...

Ubuntu24.04LTS基础软件下载
librewolf: deb文件link 作用:访问github,无痕浏览,这个速度,不指望了 vscodium: 从deb安装,ubuntu sudo dpkg -i xxx.debpaste-image 插件替代 markdown wps: libreoffice: 替换USTC源 sudo nano /etc/apt/sourc…...

SQLAlchemy配置连接多个数据库
1.定义配置项 首先定义两个数据库的配置信息 # PostgreSQL database configuration DB_USERNAMEpostgres DB_PASSWORDpassord DB_HOST127.0.0.1 DB_PORT5432 DB_DATABASEtest# mysql database configuration DB_USERNAME_MYSQLroot DB_PASSWORD_MYSQLpassword DB_HOST_MYSQL127…...

NLP+LLM从入门到精通系列
NLPLLM从入门到精通系列 前言:笔者从事于NLPLLM的对话智能机器人的相关行业,现在的大模型的技术日新月异,传统的NLP业务显然是要被淘汰的,那么这也是我着笔写这一系列文章的初衷。本系列将由浅到深,结合实际代码案例&…...

用数组手搓一个小顶堆
堆默认从数组下标为1开始存储。 const int N201000; int heap[N]; int len; 插入操作: 将元素插入到堆的末尾位置向上调整。 void up(int k){while(k>1&&heap[k/2]>heap[k]){swap(heap[k],heap[k/2]);k/2;} } //len为当前存在元素长度 void Inser…...

【Linux开发】基于ALSA库实现音量调节
基于ALSA库实现音量调节 ALSA库实现音量调节1、使用alsamixer工具查看音频接口2、完整代码2.1、snd_mixer_open2.2、snd_mixer_attach、2.3、snd_mixer_selem_register2.4、snd_mixer_load2.5、snd_mixer_first_elem/snd_mixer_elem_next2.6、snd_mixer_selem_get_playback_vol…...