- 博客(36)
- 收藏
- 关注
原创 从外卖APP到网络协议:深入解析UDP及应用层协议
xml(很少用)通过标签来组织数据,很少用于网络通信,但其他地方会用。与html不同,xml的标签是自定义的。【优势】数据可读性高。【劣势】写起来繁琐,传输时占用的网络带宽多。json(很流行)通过键值对结构来组织数据,当下最流行的组织数据的格式。键值对之间用",“分隔,键和值用”:",键是String类型,值可以是数字,字符串,数组,也可以是json等等。【优势】数据可读性高。【劣势】传输时占用的网络带宽多。除非是对性能要求很高的场景,其余很多地方都用json。
2025-05-29 17:41:51
859
原创 工作中自动化测试常用函数?快速上手!
implicitlyWait(Duration D),参数为Duration类中提供的毫秒,秒,小时,天都可以。textToBe(Bylocator,String str),文本精确匹配,是只匹配与该关键词一模一样的词。与之相对的是模糊匹配,只要含该关键词的就会匹配到。driver对象当前作用于页面上,而弹窗不属于页面,所以需要作用到弹窗上,和前面切换窗口不太一样。如图所示,上传文件的弹窗是系统的弹窗,不是浏览器的弹窗,Selenium无法控制。输入文本信息,输入的文本通过页面是看不到的,但实际输入了。
2025-04-14 17:59:56
769
原创 数据库是什么?找工作前必备的MySQL知识!
MySQL是一个“客户端—服务器”结构的软件。客户端:主动发起请求的一方,称为请求(request)。服务器:被动接收请求的一方,称为响应(response)。客户端和服务器之间通过网络进行通信,服务器是等待的一方。由于不知道客户端何时会发起请求,所以服务器是全年无休工作。大部分服务器是为多个客户端提供服务的,但也有服务器是单独为某个客户端提供服务的,如分布式系统中的机器也需要进行网络通信,那么每台机器之间就互为服务器或客户端。【分布式系统】
2025-04-14 17:56:27
442
原创 自动化测试是什么?Selenium实战!
【问】综上所述,浏览器版本很多也就说明要下载很多驱动,当浏览器版本更新后,需要下载新的驱动,不然自动化脚本会报错,可我们又不知道浏览器何时更新,怎么解决?自动化测试只占测试工作的一小部分,测试贯穿于整个软件的生命周期。3.API(接口)测试:测试中服务器端(后端)出现的问题比较多,前端出现的问题比较少,前端问题在手动测试阶段就能发现。程序,无需手动下载驱动程序,只需要在程序中下载对应的依赖,驱动管理程序会自动下载正确的驱动。:浏览器(软件),驱动(打开浏览器),Selenium工具(编写自动化脚本)。
2025-04-07 16:27:18
673
原创 自动化测试常用的函数?助你快速上手工作!
如果不quit,就很变成我电脑的情况,进程管理中会有非常多的进程,很容易把内存沾满。手工测试时,我们能通过眼睛判断是否在浏览器上打开了新的标签页,但机器是不知道的,所以需要用句柄确定当前处在哪个页面。新闻标签页关闭,driver对象指向为空,无法进行任何操作,获取所有句柄也操作不了。【注】屏幕截图要精确到毫秒,上面代码是精确到秒,可能会产生同名截图,会覆盖其他截图。驱动只作用于一个标签页,想要对其他标签页操作,必须切换驱动对象指向的标签页。定位方式有很多:id,classname,tagname,
2025-04-07 16:26:32
730
原创 详解测试分类,开发和测试人员必懂!
写的测试方法(测试用例)必须在main函数中才能调用,但用Junit,有了@Test标志(说明是一个测试方法),就可以直接运行,无需写main方法。这其中涉及到很多方法,输入方法,排序方法,输出方法等等,将这些方法集成为一个小模块,针对这一个模块进行的测试就是集成测试。最小单元是人为规定的,没有具体的定义,一个函数,类都可以是一个最小单元。自动化测试是一个统称,它分为好几类,比如接口自动化测试,UI自动化测试。分为白盒测试,黑盒测试,回合测试。具体见下方文章链接。进行整体测试,测试系统的功能性和非功能性。
2025-03-08 17:27:14
1095
原创 想快速入门企业开发Git?一篇文章带你入门Git分支~
合并分支时可能会有代码冲突的问题,在new分支下修改readMe并commit,在master分支下也修改readMe并commit。在Fast forward模式下,查看历史分支时,看不出最新的commit是merge其他分支的,还是正常commit的。分支类似于平行时空的概念,不同的时空的自己在做不同的事,互不影响。在非Fast forward模式下,能看出最新的提交是merge进来的还是正常commit的。在dev分支开发到一半发现master分支上有bug,但这时dev的分支有无法提交,怎么办?
2025-02-07 19:22:34
1757
原创 想快速设计出测试用例?认真看完吊打面试官(含笔试、面试题)
测试用例:为了实施测试而向被测试的系统提供的一组集合。* 生活中的测试用例:买了一台电脑外观检查开机检查功能检查性能检查这上面的每一条就是一条测试用例。
2025-02-07 15:56:51
616
原创 想快速掌握企业Git?一篇文章带你入门Git分支~
合并分支时可能会有代码冲突的问题,在new分支下修改readMe并commit,在master分支下也修改readMe并commit。在Fast forward模式下,查看历史分支时,看不出最新的commit是merge其他分支的,还是正常commit的。分支类似于平行时空的概念,不同的时空的自己在做不同的事,互不影响。在非Fast forward模式下,能看出最新的提交是merge进来的还是正常commit的。在dev分支开发到一半发现master分支上有bug,但这时dev的分支有无法提交,怎么办?
2025-02-07 15:55:45
1093
原创 想快速入门二叉树?一篇文章打通你任督二脉
如果叶子结点个数为n0,度为2的非叶子结点个数为n2,则n0 = n2 + 1。(度为0的结点数总比度为2的结点数多一个)有n个结点,按从上到下、左到右的顺序编号,想知道序号i的结点有多少,按如下规则分辨,2. 若规定只有根结点的二叉树深度为1,则深度为k的二叉树。有n个结点,则其深度为log2(n + 1) 上取整。同前序遍历一样,有两种解法,思路相同,我只写第一种。同前序遍历一样,有两种解法,思路相同,我只写第一种。公式:二叉树的层数为K,节点总数为2^k -1。二叉树中又有两种特殊的二叉树,
2025-02-02 19:39:30
1185
原创 想快速入门多线程?一篇文章带你入门初阶(含面试题)
由上面两点,引出了线程。线程又叫“轻量级进程”1.一个进程中可以有多个线程,每个线程用PCB表示,这些线程有自己的状态,优先级,上下文,记账信息,但是共用一个pid,文件描述附表和内存指针。创建线程(PCB)不需要重新申请资源,提高了对线程CRUD的效率2.每个线程都可以独立去CPU上调度执行,在调度中系统不再考虑进程这个概念,一律当做线程处理3.创建多个线程可以更快地完成任务,但太多会导致线程之间抢占资源,出现“线程不安全问题”。4.在多线程中,某个线程抛出异常若没有妥善处理(catch),就会把整
2025-01-27 18:22:31
1313
原创 认真看完吊打面试官★概念篇之Bug(含面试题)
通过BUG级别,能明确问题的严重程度。比如产品经理对用户购物车能存放的数量进行缩减,这是否会招致用户的不满?发现bug后在bug管理平台来创建bug(bug出生了),随后开发人员修复bug。BUG出现的步骤:1. 打开谷歌浏览器,输入网址:xxx.com;:BUG出现的版本,BUG出现的环境,BUG出现的步骤,预期结果,实际结果。软件测试的生命周期是指测试流程,每个阶段有不同的目标和交付产物。知道BUG的概念后,那如何给别人描述清楚BUG呢?准确来说,测试工作中有两种情况视为BUG,参加会议的有三方人物。
2025-01-25 15:00:01
1037
原创 认真看完吊打大厂面试官★概念篇之生产、测试模型(含笔试题)
其是增量模型和迭代模型的结合,旨在帮助项目快速适应变更需求,以便快速完成项目。针对用户的需求,产品经理需要进行需求分析(技术可行性,市场可行性,成本投入和收益占比)后才能转成软件需求。软件(产品)的生命周期也是如此,需求的开始是产品生命的起点,中间会经历需求的计划,设计,程序开发,测试等阶段,直至软件不再进行维护(死亡)。同瀑布模型缺点相同,不支持敏捷开发模式,都是把测试作为编码后的阶段,未在需求阶段就介入测试。测试模型和开发模型区别不大,都是同一个流程,只是测试模型比开发模型更注重测试。
2025-01-25 14:49:29
990
原创 9. 快速掌握异常(含面试题)
自定义异常类必须继承Exception类(受查异常)或者RunTimeException(非受查异常)。示例如下,我想抛出用户名异常和密码异常,库中没有,就需要自己写。两个异常要继承Exception类或RunTimeException类。并在throw所在的方法内throws(声明异常),在main方法中处理异常。if (!throw new userException("用户名错误");if (!throw new passwordException("密码异常");
2025-01-21 16:51:28
948
原创 6. 快速掌握抽象类及接口
并不是所有的类都用来描述对象,如果一个类中没有足够的信息来描述一个具体的对象,那这个类就是抽象类。Object类需要掌握下面这些方法,可以根据图标🔒,🔓来判断该方法是否能被重写,有🔒标志的就是被private修饰的,不能重写。被abstract修饰的类称为抽象类,被abstract修饰的方法称为抽象方法,abstract不修饰成员变量。普通类也可以做到抽象类能做到的,而且抽象类使用起来不方便,为什么要有抽象类?拷贝分深拷贝和浅拷贝,辨别深浅拷贝在于代码实现方式,而不是方法。拷贝的是对象,不是类。
2025-01-17 23:29:37
821
原创 快速掌握HTML
目录1. HTML文件的基本结构* 前端开发工具搭建* vscode的三个插件* 编写第一个html代码* 快速生成代码框架*html特殊字符2. 双标签2.1 标题标签 h12.2 段落标签 p2.3 格式化标签2.4 超链接标签 a2.5 表格标签2.6 列表标签1. 无序列表:ul标签( 快捷键:ul>li (ul下有li) )2. 自定义列表:dl(总标签)下有dt(小标题),dt下有dd(各个点)3. 有序列表:ol标签( ol>li )3. 单标签3.1 换行标签 br3.2
2024-12-07 15:15:25
1238
原创 快速掌握Python基本语法(上)
下载时看清下载的版本。“ PyCharm Professional ”是专业版(付费),“ PyCharm Community Edition ”是社区版(免费)。在这里可以运行python代码,但很简陋,编写程序也不方便,所以还需要安装开发环境。下载链接:https://www.python.org/downloads/windows/包含:= += -= *= /= %=(Python中只有+=操作,没有++操作)时变量类型会发生变化),但Java/C/C++等语言的变量是静态类型(程序。
2024-12-07 15:08:36
875
原创 快速掌握栈和队列(含面试题)
【图示】【概念】栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据在栈顶生活中栈的应用:装填子弹时,先填进去的子弹最后发射【总结】栈是一种先进后出的数据结构,底层由数组和一个计数器组成(同顺序表)栈,逻辑上先进后出,物理上连续。
2024-11-17 23:46:45
1059
原创 快速掌握企业开发之Git基础操作及安装
Git追踪管理的是文件修改内容,不是整个文件。也就是说,Objects对象中存储的是修改的内容,而不是整个文件。想要追踪管理一台电脑上的文件,必须把文件放在电脑的一个地方,这个地方就是本地仓库,放到本地仓库下的文件才能被管理。Git能够管理文件的历史版本,如果某天发现工作出了问题,需要从某个特定的历史版本重新开始,就需要用版本回退功能。我们当然也可以自己备份好每一个版本,可如果修改几百次,那就要备几百份,并且你能记住每次修改的内容吗。Git又叫版本控制器,负责记录每次的修改及版本迭代的管理系统。
2024-11-17 17:56:36
1512
原创 概念篇之认识测试(含面试、笔试题)
【案例一】挑符合审美的衣服:外观测试去试衣间试衣服:试穿测试价格材质是否符合:价格测试【案例二】return a/b;如果b为0,程序会出bug如果传送的是字符串,程序也会出bug软件测试就是验证产品特性是否符合用户的需求,比如产品的功能(购物,评论),性能(打开页面的速度),界面(在浏览器界面很容易找到搜索框),易用性(一打开软件就会用)等。企业为何需要招聘大量的测试人员?企业开发的产品是给广泛用户提供的,若是不测试,产品质量太差会导致用户大量流失。
2024-11-17 17:54:44
654
原创 7. 快速掌握封装,继承及多态
【如何自定义包】【注】使用包时要在最上方加“package 包名”指定该代码所在的包包名一般以公司域名的颠倒形式命名,比如百度,com.baidu.demo代码路径要和包名相同若一个类没有package语句,则放在默认包中。
2024-11-11 18:23:59
938
原创 初识操作系统
操作系统有内核和配套的应用程序组成,内核负责为应用程序提供支持。对下,管理所有的硬件设备对上,给软件提供稳定的运行环境不同的系统,API也不同。系统API已被封装进JVM内部,Java开发不会直接接触到系统的API,这也体现了java的"一次编译,到处运行"的特点【举例】对下:比如台式组装机,用不同配置的硬件设备组装好的电脑为什么可以使用?因为有操作系统,它认识鼠标,键盘等几个大类的硬件设备。
2024-09-15 15:24:32
576
原创 8. 快速掌握类和对象
类是描述对象信息的,成员变量在实例化为对象后,对象会有一份实例变量。可使用这些信息来描述具体的学生信息,如姓名,年龄,这些是对象所特有的属性,而教室是学生集合所共有的,不单独属于某个对象。就好比作为学生,名字是所有人都有的成员变量,在类实例化后成员变量变为实例变量,名字这个实例变量属于你,但你的老师不属于你,老师是所有学生共有的变量。假设三个同学是同一个班的,他们上课是在同一个教室,能否给类中再加一个成员变量,来保存同学上课时的教室呢?如何打印对象的内容?类,指自定义类型,不占用内存空间,不存储任何数据。
2024-09-15 15:22:59
1122
原创 4. 快速掌握Java的方法及程序逻辑控制
在编译器看来,int add(int x, int y)是(II)I,表示参数类型是int,返回值也是int;【定义】将原问题拆成几个子问题,子问题的解决思路与原问题有相同的解法,解决一个个子问题后就解决了原问题。比如写了一个求两个整数之和的方法,当再想求两个小数之和的方法就需要重新写一份代码,方法名也要再取,为了不用取方法名,就有了重载,也就是生活中说的一词多义。实参是main方法中的变量,方法调用时,会将实参的值拷贝一份传给形参。【概念】如果多个方法的名字相同,参数列表不同,那么方法之间构成重载。
2024-08-09 16:59:01
445
1
原创 快速掌握单链表和双链表(含面试题)
【概念】链表底层是一个个串起来的节点,其物理(内存)上不连续,逻辑上连续;链表是通过节点【与顺序表的区别】比数组多了一个变量来计数;原因是,按照常规思路计算数组大小(遇到0终止),若数组中有一个值就是0呢?所以用变量计数,插入一个数据,负责计数的变量就++;【链表类型】链表类型一共有9种,但只重点掌握两种即可分别是“单向不带头节点的非循环链表(SingleList)”和“双向不带头节点的非循环链表(LinkList)”【小经验】想要遍历整个链表,while(cur!=null)
2024-07-24 16:06:12
1259
原创 3. 快速掌握java运算符及优先级
【类型】表达式1?表达式2 : 表达式3——>1为真,2的值为整个表达式的值;1为假,3的值为整个表达式的值。【注】/ 运算符只有当一方为浮点数时,才是浮点数,否则就是整数。【注】表达式2和3必须是同一类型的数据,除非能发生隐式类型转换。不用记一点~,写代码时直接用括号阔起来即可。N 相当于原数字 * (2的N次方)【注】”0
2024-07-12 11:50:02
649
原创 2. 快速理解Java的数据类型与变量
【原理】计算机中CPU每次取指令都是以4字节为单位从内存中读写数据,所以为了方便硬件实现,4个字节以下的类型在进行运算时会提升为int类型。【注】:布尔类型只有true和false,没有明确的大小,不可用1代替true。【适用于】数据类型由小转大 / 数据没有超过该数据类型的取值范围。【适用于】数据类型由大转小/数据超过该数据类型的取值范围。【演示】范围小的会提升为范围大的。【包装类】Character。【包装类】Integer。【包装类】Boolean。【包装类】Double。【包装类】Short。
2024-07-10 19:00:05
1056
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人