- 博客(86)
- 收藏
- 关注
原创 python的数据结构列表方法及扩展(栈和队列)
!使用示例:使用示例使用示例:练习题目1:练习题目2:collections.deque()队列列表推导式从序列中创建新的列表的简单途径,将操作应用于每一个元素,获得新的列表。示例1:示例:使用示例:不仅如此,元组、序列、字典、集合都属于python的数据结构具体使用示例:
2024-10-30 22:11:45 534
原创 python的lambda实用技巧
模块的装饰器,它的作用是更新被包装函数(即被装饰的函数)的一些元数据,使其在被装饰后仍然保留原有的函数名、文档字符串、注解等属性。lambda表达式是一种简化的函数表现形式,也叫匿名函数,可以存在函数名也可以不存在。reduce():具体功能是作用于对一个迭代对象的元素进行积累(累加,累乘)等操作。filter():用于筛选数组中满足条件的值,并返回一个新的可迭代对象。map():用于可迭代对象中每个元素所指定的函数,返回新的迭代器。接收一个函数作为参数,返回一个新的函数或修改原来的函数。
2024-10-30 22:05:08 418
原创 python的逻辑控制
在python中创建一个迭代器需要实现两个函数iter(),next()。使用__iter__中返回一个特殊的迭代对象。这个迭代器实现了一个__next__方法将通过标识将迭代完成。
2024-09-27 08:35:24 750
原创 python的数据类型详解
python的数据类型一般不会去定义,作为python的数据类型是比较特殊的,python数据是使用赋值作为数据类型的定义,了解python数据类型的使用是非常重要的
2024-09-16 13:13:17 1377
原创 Python测试框架Pytest的使用
在类中,你可以使用 `pytest` 的类级别的 setup 和 teardown 方法,即 `setup_class` 和 `teardown_class`(==注意,从 pytest 3.0 开始,推荐使用 `setup_class` 和 `teardown_class` 的新名称 `setup_method` 和 `teardown_method` 加上 `@classmethod` 装饰器来定义类级别的 setup 和 teardown,但更常见的是使用 `@pytest.fixture(scope
2024-08-24 11:29:05 1359
原创 python测试框架之Pytest
Pytest是python的一个第三方单元测试库,它的目的是让单元测试变得容易,并且也能扩展到支持应用层面复杂的功能测试。
2024-08-24 11:19:40 1860
原创 游戏测试中需求分析的本质
功能描述:登录模块是玩家进入游戏的第一步,用于验证玩家的身份。玩家需要输入用户名和密码(或其他身份验证方式,如邮箱验证、手机验证码、社交媒体登录等),系统通过比对数据库中的信息来确认玩家的身份。成功登录后,玩家可以访问其游戏账户内的数据,如角色信息、游戏进度、成就等。关键技术:身份验证、数据加密、会话管理。(1)用户解决问题或达到某个目标所需要的条件或者权能(2)系统或系统部件需要满足的合同、标准、规范和其他正式文档所具备的条件或者权能(3)一种反映上述问题的说明文档。
2024-08-15 14:27:12 1161
原创 游测与软测相交,会产生什么?
记录bug,可以直接提交给开发一些简单的问题,开发解决后会进行问题反馈,而一些复杂或无法复现的问题是需要提交到bug管理工具的,提交到bug管理工具,用户需要收集相关日志,编写缺陷发生步骤以及版本号,提供给开发进行修复,帮助开发早点找到问题。在执行过程中可能会遇到软件缺陷,在测试时会有两个测试文件,一个为点检版本、一个为全量,点检是在全量中取出一部分用例,作为提前检查基本功能,有助于更找的发现软件缺陷,而不会浪费太多的时间。准备测试时使用的各种游戏数据以及用户数据、配置文件、确保测试数据的完整性和准确性。
2024-08-15 14:24:41 950
原创 使用Jmeter进行接口自动化测试
在测试途中,对于测试的返回的结果数据,只能看到接口执行的通过率,针对于更加实际的结果,我们可以使用断言来判定这条用例是否通过。:通过频繁执行自动化测试,可以持续监控软件接口的质量和性能,确保其稳定性和可靠性,从而提升整体软件质量。:自动化测试可以快速执行大量的测试用例,帮助开发人员更快地发现和定位问题,提高问题解决的速度和准确性。:相比手动测试,自动化测试可以显著提高测试效率,缩短测试周期,节省时间和人力成本。自动化的目的:为了提高测试效率,所有可以用于提高测试效率都可以称为自动化。
2024-07-15 16:26:14 898
原创 认识Jmeter性能测试
通过设置线程数、Ramp-Up时间(线程启动时间间隔)和循环次数,可以控制模拟的并发用户数量及其行为模式。性能测试的目的是评估软件系统的能力,确保其能够满足用户提出的性能指标,同时发现系统中存在的性能瓶颈及问题,从而优化系统性能。100个线程,爬坡时间10s-每秒创建10个线程-----线程数/爬坡时间=每秒创建线程数。4.控制机导入执行机:在配置文件中加入执行机的IP,字段名。4.控制机导入执行机:在配置文件中加入执行机的IP,字段名。在永远的情况下,指定的测试时间,时间一到,立马停止。
2024-07-15 16:20:31 816
原创 软件和测试的关系
需求(支持网页端、App端)、测试(浏览器的兼容、操作系统、手机分辨率、品牌、系统、网络):需求(10个功能,功能详情)、测试(功能数量10个、功能正确处理、错误处理情况):需求(可响应、可使用,卡顿情况,死机)、测试(可响应、可使用,卡顿情况,死机):需求(20W用户在线)、测试(服务器每秒处理请求数、服务器配置是否满足):需求(对隐私数据进行保密)、测试(网络传输保密、数据存储保密):需求(数据可迁移)、测试(网站数据迁移、软件数据迁移):需求(用户体验感)、测试(简洁、友好、流畅、美观)
2024-07-04 15:19:27 821
原创 软件缺陷介绍以及管理
在软件运行过程中出现的问题都叫做软件缺陷,简称bug。少功能:软件未实现需求(规格)说明书中明确要求的功能。功能错误:软件出现了需求(规格)说明书中指明不应该出现的错误。多功能:软件的功能超出需求(规格)说明书中的范围。隐形性功能错误:软件未实现需求(规格)说明书中虽未明确但是需要实现的要求。不易使用:软件难以理解,易用性差,运行缓慢,体验差。
2024-07-02 14:12:04 986
原创 Spring Boot的热部署工具“AND”Swagger测试工具
指的是在项目无需重启的情况下,只需要刷新页面,即可获得已经修改的样式或功能。要注意该工具一般用于开发环境,在生产环境中最好不要添加这个工具。对于无需重启便可刷新这么方便的工具,在项目中该如何使用:在spring boot 项目中使用工具的方法就是引入相关依赖,热部署工具的依赖如下:
2024-04-30 21:58:33 962
原创 Linux系统的进程,看完它,相信你想kill“it“就kill“it“o((>ω< ))o
进程在操作系统中高并发处理中产生了重要的作用。Linux作为一个操作系统,也必须要拥有这两者才可以进行高并发。使用kill命令一般是用来终结一个进程的,在之前用到的。众所周知,不管在什么系统中,线程是CPU调度的最小单位。进程是资源分配的最小单位。不仅如此,该命令还可以配合。来使用进行查找相应的进程。命令都可以查看进程的。
2024-03-07 21:27:15 345
原创 Linux的文件操作,重拳出击( ̄︶ ̄)
学习Linux的文件操作,一般需要知道一个文件如果你想要操作他,必须知道你对这个文件有什么操作的权限或者修改你自己对文件操作的权限。必须要知道文件有三种权限r:可读w:可写x:可执行在打开Linux时登录打开命令行界面输入查看当前目录下的文件命令ls或者ls -l。ls:显示当前路径下的所有文件ls -l:显示当前目录下所有文件及其文件的用户属性及其每个组可使用的权限注意这里可能无法使用ll,因为这个命令需要在配置文件中修改添加一个属性值ls -l=ll。
2024-02-24 10:34:25 937
原创 设计模式是测试模式咩?
软件的生命周期为什么要进行测试(测试的目的)?软件的设计模式1. **瀑布模型**3. 增量和迭代模型4. 敏捷模型5. 喷泉模型测试模型`V`模型`W`模型一个应用程序从出生到“死亡”会经过非常漫长的流程……
2023-11-09 22:19:12 593
原创 消息队列的模拟实现(三)
设计了目录结构和文件格式实现了目录创建和删除实现了统计文件的读写实现了消息的写入,写入数据文件消息删除 ==》随机访问文件加载所有消息垃圾回收机制===》复制算法。
2023-10-18 22:10:04 347
原创 测试用例的八大基本准则
如何来知道一个软件是否真的符合其需求,学会针对性地设计测试用例。对系统中一些接口的功能进行测试,是否达到预期效果,接口测试主要关注的是数据的传输、交互和集成。功能测试、性能测试、安全测试、可靠性测试、易用性测试、数据库测试、接口测试、兼容性测试。一般针对软件,在程序执行一些关于数据库的操作时,数据库是否可以得到正确的结果或响应。软件:测试软件的加密性,用户认证及权限控制,防御恶意攻击等方面的能力。
2023-09-27 22:37:40 617
原创 消息队列的模拟实现(二)
原因是因为 SQLite 和 MySQL是不一样的,只能执行第一条语句,后续语句直接忽略,所以每执行一次,都需要额外再写一次SQL语句。同样的在核心文件夹创建一个queue类,这里需要注意这个名字与Java中的集合类名字相同,这里因为是存储消息的队列,所以改名为。要分析绑定,就应该知道绑定的作用,绑定的作用是用来将交换机和队列进行绑定,更好的传输数据。方法,以同样的方法去修改即可,总而言之在设置Map时将传递数据的格式改为字符串,修改类中的。语句后,我们应该在代码实现一个接口来调用文件中的方法。
2023-09-15 10:09:32 442
原创 消息队列的模拟实现(一)
要实现一个消息队列首先需要进行项目分析,列出项目组成,然后一一细分其中功能。其实做每一个项目都是这样的,当然如果是你自己创建一个新的项目其实也是需要进行项目分析和项目组成,然后得到你所期待的功能。
2023-08-25 09:13:20 263
原创 Spring Aop组成部分
是对面向对象编程的一种补充,是一种编程思想,是对某一类的事情的集中处理。比如用户登录状态的验证状态,在之前写servlet版本的博客系统,这里就有一个登录验证而且是在每一个页面都添加了一个登录验证,在使用Aop后,只需要写一个类就可以解决这个问题。Aop。
2023-08-09 10:27:41 758
原创 获取Bean的两种方法
在五大类使用时需要注意名称的大小写来注册一个Bean对象,那么有没有更加方便的定义方法呢?添加Bean自定义名称在之后的使用中就可以使用自定义名称来作为Bean名称来调用对象。要注意一旦使用了自定义的名称作为Bean对象,原来的类名就不能使用了。
2023-07-28 21:50:30 422 1
原创 性能测试入门
首先我们来认识一下性能测试在软件测试中的重要性,也就是定义。测试人员借助性能测试工具,模拟系统在不同环境下对应的性能指标是否达到预期指标,然后根据其产生的效果尽量排除软件在使用过程中或者程序运行时存在的潜在性问题。一些性能问题:系统在高压环境下崩溃、软件在某些场景无法正常使用、在大量用户同时使用程序时,无法正常使用一些功能等等。而性能测试主要发现软件性能问题,优化软件性能,从而提升用户体验。
2023-07-21 09:30:03 515 2
原创 自动化测试selenium(1)
原因是相对路径效率高,因为效率高,所以也经常使用,对于绝对路径来说,效率低,想要查找一个元素时要从底层目录开始查找,不太可观。,这些测试都是对于代码方向上的分类标准,而对于代码的运行模式又分为两种模式。自动化脚本 ----> 浏览器驱动 -----> 浏览器。是用于对web自动化测试的一个框架,其作用范围广泛原因就是。接下来主要介绍自动化测试中的selenium的使用。copy element: 拷贝这一个元素中所有内容。自动化测试中会经常使用到自动化测试框架,而。
2023-07-17 21:32:48 610 1
原创 初识Spring
我们观察在第一种取出对象的方法中使用了强制转换,意味着当取出对象时会被直接转换为一个对象,试想一下,如果并没有取出bean对象时,返回null,null值将会被转换为一个对象,显然会出现异常。当制作一个行李箱时,原本的步骤是自己建造一个部分然后组装该部分再传递到下一个部分进行制作和组装,而现在只管制作,不管组装,大大提高的解耦和。在市场上大部分的行李箱都有大小限制,而随着行李箱的改变轮子大小也会发生改变,这里使用轮子的大小来设定行李箱的大小,所以我们设置一个。是不同的,而且他们的底层逻辑也是不同的。
2023-07-07 19:42:29 447
原创 hash冲突是什么?
当我们在一堆数据中查找一个元素时,使用普通方法得到的时间复杂度是O(N),使用搜索树的时间复杂度为O(logn),而现在告诉你有一种数据结构可以只使用O(1)的时间复杂度就可以查找,对程序的效率提升是一种质的飞跃。而这就是哈希(散列)。;capacity为存储元素底层空间总的大小。
2023-06-30 07:43:49 195
原创 hahmap和set使用与注意事项!
哈希表(hashMap)和 集合 (Set)是数据结构中比较常用的一部分,他们的特性通常可以解决很多问题,这两个数据结构是同根生,存储数据的方式也很特别。hashmap相当于一个地图,存储数据是按照键值对的方式来存储的,就等于一种类对象的数据模式。Set是一种集合,存储方式与数组差不多。不过虽然这两种数据结构与其他数据有些相同之处,不过他们最大的区别就是,set中不会存储两个相同的值,存储在set中的值都是唯一的。同样的,hashmap中的键也是唯一的。利用这两个数据的特性解决一些问题是不是会方便许多。
2023-06-29 15:04:19 218
原创 HTTP与Fiddler使用
使用POST方法,浏览器会将请求信息封装在HTTP请求体中,然后向服务器发送请求,服务器根据请求的内容进行相应的处理,并将响应结果返回给浏览器。当客户端(浏览器)需要跟服务器请求连接的时候,服务器就会生成一个cookie传递给客户端,让客户端以这个cookie为凭证连接服务器并进行通信,在之后的信息传递过程中,cookie就相对于服务器识别这个客户端是否产生过连接,提高两者通信效率。使用GET方法,浏览器会将请求信息封装在HTTP请求头中,然后向服务器发送请求,服务器根据请求的内容返回相应的响应结果。
2023-06-23 15:38:19 775
原创 UDP和TCP网络编程
首先是在硬盘中写入数据(请求),为了提高效率,数据被写入缓存区,缓存区有一个特性就是满了才会将数据进行统一提交(提交到网卡),这样才能读到请求。当计算机需要执行或者读取某个文件时,会将一部分数据加载到缓存中,下一次需要的时候,直接从缓存中获取即可,避免了不必要的磁盘读写操作,提高访问速度。一样的,可以用于存放数据的容器。根据请求数据计算响应数据,为了更简单的包装请求,不需要一个一个字节去计算,所以这里设置为字符串类型。根据请求计算响应数据,因为我们的服务是回显服务,所以只需要返回请求即可。
2023-06-19 11:41:15 2880
原创 Session和Cookie,你真的弄清了吗?
为什么需要cookie和session?在web系统发展变迁时,web发展时随着需求的不断增多,交互的存在必然会引起多步操作,引入session和cookie用于保存操作,也就是对一种状态的记录。从记录状态的角度来识别session和ccokie。就拿最简单的登录功能来解说,当我们访问一个网站时,如果在此之前我们曾经登录过,浏览器会自动帮我们填充账号和密码。而cookie和session记录的就是这一种状态,不需要我们自己去填写,浏览器会自动记录状态。
2023-06-17 10:50:21 334
原创 计算机网络-子网划分
IP协议是TCP/IP体系中最主要的协议之一,也是最重要的互联网协议之一。IP协议是32位,通常使用点分十进制来表示:如,我们最常见的本地地址127.0.0.1,以来隔开8个位。每个IP地址都是由两部分组成。
2023-06-10 19:19:09 1596 1
原创 TCP传输性能的关键因素除了流量控制,还有这些!
UDP:可靠性低,传输效率高TCP:可靠性低,传输效率相比于UDP稍微逊色两个通信协议其实都有着自己的应用场景,可以根据不同需求来决定不同的通信协议。TCP:可靠性低,传输效率相比于UDP稍微逊色两个通信协议其实都有着自己的应用场景,可以根据不同需求来决定不同的通信协议。
2023-06-01 22:38:43 559
原创 网络连接管理除了TCP三次握手,还有TCP四次挥手
综上所述,TCP连接管理中建立连接和断开连接是不同的,报文格式也是不同的。TCP三次握手中ACK和SYN几乎是同一时间发出,是一种内核态的过程。而FIN和ACK是在不同时机触发的,而ACK是内核态,速度快,而FIN是一种应用程序代码,是由人为控制,所以两个数据报很难合并。
2023-05-31 18:47:15 558
原创 死锁的成因和解决方案
锁是操作系统和程序语言中常用的同步机制,用于保证共享资源的,防止多个线程或进程同时,导致数据不一致或程序崩溃。死锁是我们在进行并发编程中需要时刻避免的一个问题。当多个线程互相等待的时候对方释放资源,系统就会出现死锁。具体来说,当一个线程,但同时它需要获取才能够继续往下执行,而另外一把锁又被其他线程占用了,这时候就会产生死锁。 当一个线程拿到一把锁之后,另一个线程会一直陷入等待状态,无法正常执行程序。(锁的基本特点)不可抢占一个线程拿到锁,只能由自己自动释放,不能被其他线程进行抢夺。
2023-05-29 17:12:21 820
原创 Java 线程的6种状态
进程(process)和线程(Thread)是不同的。进程是资源分配最小单位,而线程是程序调度的最小单位。作为一名程序猿,认识线程状态是学习程序调度必不可少的一部分内容,一个线程被创建,它就会处于一种状态,认识线程的状态可以更容易的利用好线程的特性及分配好内存资源,
2023-05-26 13:40:42 860
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人