- 博客(14)
- 收藏
- 关注
原创 python语法点
相当于把一个列表拼接到另一个列表的后面。pop 方法删除最末尾元素,pop。写入的内容会存在于之前文件内容的末尾。打印一行的时候又会默认加上一个换行符。在创建字典的时候往往会把多个键值对。列表中存放的元素允许是不同的类型。方法可以获取到字典中所有的键值对。这样的由下标构成的前闭后开区间。也可以在创建的同时指定初始值。的返回值就是用户输入的内容,循环能够获取到字典中的所有的。方法可以获取到字典中的所有的。字典本质上也是一个hash。进一步的就可以取出每个值了。方法可以获取到字典中的所有。
2025-07-02 17:34:25
983
原创 接口的性能测试
性能测试旨在发现系统性能问题或获取相关指标,主要包括性能调优和性能测试指标。性能测试的关键指标包括并发数、吞吐量(如TPS和QPS)和响应时间。吞吐量直接反映系统负载承受能力,而响应时间则衡量从请求发出到客户端接收数据的时间。性能测试分为基准测试、并发测试、负载测试、压力测试和稳定性测试,每种测试关注系统在不同条件下的表现。例如,负载测试通过逐步增加负载来确定系统的处理能力,而压力测试则评估系统在超出预期负载下的表现。此外,使用工具如JMeter进行性能测试时,需配置线程数、线程组、用户登录状态等,并生成测
2025-05-14 17:10:25
1154
原创 selenium的函数
是整个脚本的所有元素。即只要driver对象没有被释放掉(driver.quit()),隐式等待 就⼀直⽣效。显⽰等待也是⼀种智能等待,在指定超时时间范围内只要满⾜操作的条件就会继续执⾏后续代码,不只是按钮可以点,大多数地方都可以点击(比如hidden的)结论:不要混合隐式和显式等待,可能会导致不可预测的等待时间。重试多次,最终打印的等待时间有10s、11s....只能用于查找页面元素,非页面元素(如弹窗等)不能生效。6. 打开新的标签页才需要切换窗口。弹窗是在⻚⾯是找不到任何元素的。
2025-05-07 20:11:24
339
原创 测试的分类
语句覆盖(每个语句至少执行一次)、判定覆盖(判定语句的取值都要取到,是针对if语句来说的)、条件覆盖(if语句中的条件单独提取出来,每个取值都要取到)、判定条件覆盖、条件组合覆盖、路径覆盖。β测试⼜叫公测或者叫b测,β测试由软件的最终⽤⼾们在⼀个或多个场所进⾏,这⾥就可以理解为,β测试是正式⽤⼾中的⼀部 分,他们在任意的场合来使⽤软件,⽬的是为了发现软件是否存在⼀系列的问题。α测试⼜叫内测或者叫a测,α测试通常是公司内部的⽤⼾在模拟实际操作环境下进⾏的测试。(3)越权:垂直越权和水平越权。
2025-04-29 16:35:06
407
原创 测试用例的要点
4.每条case都是一条测试用例,但此时继续将重要的用例补全,例这里还需再加一个全部不填写的测试用例。卸载:安装完成后卸载,安装一半后卸载,卸载一次后继续安装卸载,卸载一般后停止是否可以继续卸载。安装:安装包是否可以安装,卸载之后是否可以继续安装,重复安装,软件更新后安装是否成功。等价类里有很多数据,拿出其中的一个数据,此数据通过,则此等价类全通过。(1)页面响应时间是否可接受:热启动,冷启动,页面切换,前后台切换。正常的用例场景,备用用例场景,异常用例场景,假定推测的场景。
2025-04-25 21:35:35
849
原创 设置MySql的自增主键的值从删除之后的位置增加
这时就出现了一个问题:当我们向表中继续插入数据时,id 并不会为 2 ,id而是从删除前的记录继续递增,这就会给我们使用带来不便。此时我们删除表中 id = 2,3,4 的数据,并不会扰乱主键的递增。的 ,此时我们不断向数据库中插入数据,主键的值便会不断的自增。此时,再进行插入数据时,主键的值就从删除之后的位置增加。Mysql数据库的主键是。
2023-12-14 08:15:00
996
1
原创 哈希表详解+Java代码演示+面试高频问题!
2.5.2 开散列/哈希桶(重要!)1开散列法开散列法又叫链地址法(开链法),首先对关键码集合用散列函数计算散列地址,具有相同地址的关键码归于同一子 集合,每一个子集合称为一个桶,各个桶中的元素通过一个单链表链接起来,各链表的头结点存储在哈希表中。开散列从数据结构上可以看作由数组加链表加红黑树组成。(当链表长度大于等于8,链表长度大于等于64,此时将会变成红黑树)哈希桶是一种哈希表的实现方式,其结构如下:数组:哈希桶基于数组来实现,每个元素都是一个哈希桶节点。哈希函数:哈希桶使用哈
2023-12-11 10:01:54
1617
1
原创 使用接口自定义排序的多种方法 + PriorityQueue案例详解!
如果指向同一个对象,返回 true, 如果传入的为 null,返回 false,如果传入的对象类型不是 Student,返回 false, 按照类的实现目标完成比较,例如这里只要姓名和年龄一样,就认为是相同的。因为:对于用户实现自定义类型,都默认继承自Object类,而Object类中提供了equal方法,而==默认情况下调 用的就是equal方法,但是该方法的比较规则是:没有比较引用变量引用对象的内容,而是直接比较引用变量的地 址,但有些情况下该种比较就不符合题意。那为什么==可以比较?
2023-12-04 09:56:41
2625
原创 创建大顶堆代码+时间复杂度详解+归纳过程!
大家可能在看了上述代码后认为向下调整shiftDown(int parent,int len)函数的时间复杂度为 logN, 创建堆createHeap()这个函数的时间复杂度为N, 所以创建大根堆时间复杂度为 N * logN , 但其实这个结果是不正确的,创建大根堆正确的时间复杂度其实为O(N)。下面请大家跟着我以数学公式的方法进行推导:其中,每个父亲节点都需要和孩子节点进行值的比较,如果孩子的值大于父亲的值,则需要进行向下调整,即将父亲的值和孩子的值进行交换,以确保每个父亲节点的值均大于孩子节
2023-12-01 17:30:51
1841
1
原创 中缀表达式转后缀表达式/逆波兰表达式详细步骤 + java代码实现
逆波兰表达式是一种后缀表达式,它将运算符放置在操作数之后。逆波兰表达式求值的过程是从左到右扫描表达式,遇到数字时将数字压入栈中,遇到运算符时弹出栈顶的两个数字进行运算,并将结果压入栈中。最终栈中只剩下一个数字,即为表达式的值。以下是逆波兰表达式求值的Java代码和详细讲解:具体操作步骤如下:1.创建一个栈来存储数字。2.从左到右遍历逆波兰表达式中的每个元素。3.如果当前元素是运算符,则从栈中弹出两个数字进行运算,并将结果压入栈中。4.如果当前元素是数字,则将其压入栈中。5.遍历
2023-11-28 16:23:16
712
原创 泛型详细剖析 + 代码示例详解!
Java中对于Boolean、Byte、Character、Short、Integer这五种包装类型,会在内部维护一个缓存数组,范围为-128到127,当自动装箱时,如果值在这个范围内,则直接从缓存数组中获取对应的包装类型对象,而不是重新创建一个对象。因此,e和f的值都在这个范围内,它们引用的是同一个常量池中的对象,所以"e == f" 的结果是true。自动装箱和自动拆箱是Java中的两个特性,可以简化代码的编写,使得基本类型和其对应的包装类型之间的转换更加方便。Java的泛型机制是在编译级别实现的。
2023-11-24 09:35:57
1635
1
原创 详解时间复杂度+空间复杂度+各种代码案例
一.时间复杂度大O的渐进表示法算法中的基本操作的执行次数,为算法的时间复杂度(注意:这里指的是最坏情况下)在表示时间复杂度时,我们统一使用大O渐近法,实际中我们计算时间复杂度时,我们其实并不一定要计算精确的执行次数,而只需要大概执行次数。1、用常数1取代运行时间中的所有加法常数。2、在修改后的运行次数函数中,只保留最高阶项。3、如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶这里我们把需要进行冒泡排序的元素个数看作n,最外层的for循环每执行一次,n的值减一,在第一次执
2023-11-23 10:10:49
414
原创 加盐算法加密和解密的详细过程
第二种是传统的MD5加密,这种方法虽然是不可逆的,但是有可能被暴力破解,这种加密方式是有规律可循的,在下面代码中就演示了比如对于“123456”,那么对应的MD5加密后的密文就是e10adc3949ba59abbe56e057f20f883e,彩虹表就应运而生,在彩虹表里面,几乎记录了所有字符串的MD5对照表。加盐加密算法中的盐就像做饭的厨师加盐一样,盐粒是随机的,没有规律可循,比如同样的“123456”密码,在第一次调用加盐算法和第二次调用加盐算法生成的结果都是不同的,因为每次调用都是生成随机的盐值。
2023-11-22 11:28:21
5735
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅