自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 webdriver API进阶

webdriver 可以很方便的使用findElement 方法来定位某个特定的对象,不过有时候我们却需要定位一组对象,这时候就需要使用findElements 方法。用以下HTML示例说明:用浏览器打开这个页面可以看到三个复选框和两个单选框,编写自动化测试脚本:来定位这三个复选框二、多层框架/窗口定位多层框架定位:解决不同层框架上的页面的元素的定位定位一个frame :定位一个窗口window:switch_to.window(name_or_id_or_frame_element)多层

2022-08-31 22:22:36 1833 1

原创 项目管理工具——禅道

QC是TD(Mecury)的升级版基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、测试计划、执行测试和跟踪缺陷。JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。测试用例管理需插件。用于管理测试用例和测试过程,缺少缺陷管理的功能。禅道是国产的开源项目管理软件,专注研发项目管理,内置需求管理、任务管理、bug管理、缺陷管理、用例管理、计划发布等功能,4.自动生成测试报告。.

2022-08-11 23:34:27 2976

原创 测试总结——项目篇

测试流程:需求分析——测试计划——测试设计/开发——测试执行——测试总结。

2022-08-11 21:46:12 463

原创 23、网络原理——TCP/IP四层模型之中的重点协议(2)

数据链路层的作用两个设备(同一种数据链路节点)之间进行传递数据。网络层的作用在复杂的网络环境中确定一个合适的路径。MTU相当于发快递时对包裹尺寸的限制。

2022-07-18 21:22:27 348

原创 22、网络原理——TCP/IP四层模型之中的重点协议(1)

全双工指的是,TCP任何一段既是发送数据方,又是接收数据方,因此这就要求TCP通讯双方既要保证自己的发送能力,又要保证自己的接受能力才行。归根结底,TCP和UDP都是程序员的工具,什么时机用,具体怎么用,还是要根据具体的需求场景去判定。,先发少量的数据,探探路,摸清当前的网络拥堵状态,再决定按照多大的速度传输数据;.........

2022-07-18 19:51:49 681

原创 21、当在浏览器中输入了URL之后,程序是怎样执行的?

当在浏览器中输入了URL之后,程序是怎样执行的?

2022-07-16 13:20:38 364

原创 20、网络原理——基础概念

IP地址描述的是路途总体的起点和终点,是给人使用的网络逻辑地址。MAC地址描述的是路途上的每一个区间的起点和终点,即每一跳的起点和终点,是给网络硬件设备使用的网络物理地址。

2022-07-16 11:44:22 109

原创 19、网络原理——初识

目录一、网络发展史1.1独立模式1.2网络互连1.2.1局域网LAN一、网络发展史1.1独立模式独立模式:计算机之间相互独立;1.2网络互连随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成业务,就有了网络互连。网络互连:将多台计算机连接在一起,完成数据共享。数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信。根据网络互连的规模不同,可以划分为局域网和广域网。1.2.1局域网LAN局域网,即 Local Area Netwo

2022-06-01 16:45:55 639

原创 18、Java 中操作⽂件

目录一、Java 中操作⽂件1、 File 常⽤构造⽅法2、常⽤⽅法2.1 观察 get 系列的特点和差异2.2 ⽂件判断与创建一、Java 中操作⽂件Java 中通过 java.io.File 类来对⼀个⽂件(包括⽬录)进⾏抽象的描述。注意:有 File 对象,并不代表真实存在该⽂件。1、 File 常⽤构造⽅法import java.io.File;public class FileDemo1 { public static void main(String[] args) {

2022-05-30 21:01:17 210

原创 JAVA习题:递归

1.青蛙跳台阶问题

2022-05-29 08:37:54 158

原创 自动化测试selenium篇

目录一、什么是自动化测试1.1单元测试1.2接口自动化1.3 UI自动化二、如何实施自动化测试三、自动化测试需要了解的技能四、selenium介绍4.1 Selenium IDE4.2 Webdriver一、什么是自动化测试自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。自动化测试包括UI自动化,接口自动化,单元测试自动化。按照这个金字塔模型来进行自动化测试规划,可以产生最佳的自贡话测试产出投入比(R

2022-05-27 22:46:29 2183 1

原创 17、Cookie 和 Session

目录一、Cookie:二、理解会话机制 (Session)三、Cookie和Session的区别四、核心方法五、读Cookie和写Cookie六、读Session和写Session一、Cookie:HTTP 协议⾃身是属于 “⽆状态” 协议。“⽆状态” 的含义指的是:默认情况下 HTTP 协议的客户端和服务器之间的这次通信和下次通信之间没有直接的联系。但是实际开发中, 我们很多时候是需要知道请求之间的关联关系的。例如登陆⽹站成功后, 第⼆次访问的时候服务器就能知道该请求是否是已经登陆过了:注意:虽

2022-05-17 23:31:37 167

原创 16、获取POST请求中JSON格式的参数

POST 请求的参数⼀般通过 body 传递给服务器, body 中的数据格式有很多种, 如果是采⽤ form 表单的形式, 可以通过getParameter() 获取参数的值,但是,使⽤getParameter() 的⽅式是获取不了 JSON 格式的数据的。获取方式如下:后端代码:import com.fasterxml.jackson.databind.ObjectMapper;import javax.servlet.ServletException;import javax.servlet

2022-05-17 21:23:56 4312

原创 15、Servlet的生命周期

Servlet生命周期:首先加载servlet的class,实例化servlet,然后初始化servlet调用init()方法,接着调用服务的service()方法处理doGet和doPost方法,最后是容器关闭时候调用destroy()销毁方法。Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:·Servlet 通过调用 init () 方法进行初始化。·Servlet 调用 service() 方法来处理客户端的请求。·Servlet 通过

2022-05-17 21:01:19 86

原创 测试总结四

目录进阶篇1、按测试对象划分1.1界面测试/UI测试1.2可靠性测试1.3容错性测试1.4文档测试1.5兼容性测试1.6易用性测试安装卸载测试1.8安全测试1.9性能测试1.10内存泄漏进阶篇1、按测试对象划分1.1界面测试/UI测试界面直接和用户交互的,界面设计的好坏决定了用户使用软件的直观感受。软件只是一种工具,软件与人的信息交流是通过界面来进行的,界面是软件与用户交流的最直接的一层,界面的设计决定了用户对所设计的软件的第一印象,具有吸引用户的直接优势,设计合理的界面能给用户带来轻松愉悦的感

2022-05-13 22:33:03 953

原创 13、学习总结:HTTP协议

目录1.HTTP 是什么?1.1 HTTP 1.0、1.1、2.0、3.0区别:2.HTTP ⼯作过程2.1 HTTP 协议格式2.1.1 抓包⼯具使⽤2.1.2 抓包⼯具原理2.1.3 抓包结果分析:HTTP请求/响应2.1.4 协议格式⼩结3.HTTP 请求1.HTTP 是什么?HTTP (全称为 “超⽂本传输协议”) 是⼀种应⽤⾮常⼴泛的应⽤层协议。.所谓 “超⽂本” 的含义, 就是传输的内容不仅仅是⽂本(⽐如 html, css 这个就是⽂本), 还可以是⼀些其他的资源, ⽐如图⽚, 视频, ⾳

2022-05-10 20:56:55 457

原创 测试总结三

目录用例篇1、测试用例的基本要素2、测试用例的给我们带来的好处3、测试用例的设计方法功能测试需求非功能需求测试分析具体的设计方法①等价类②边界值分析法③错误猜测法④场景设计法用例篇1、测试用例的基本要素测试用例是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。好的测试用例是一个不熟悉业务的人也能依据用例来很快的进行测试。评价测试用例的标准:对比好坏用例的标准1.用例表达清楚,无二义性2.用例可操作性强3.用例的输入与输出明确,一条用例只

2022-05-06 23:45:06 890

原创 12、学习总结:JavaScript篇

目录1.什么是JavaScript?1.1 JS、HTML、CSS 关系1.2 JS 是如何运⾏的?2.JS 前置知识2.1 第⼀个JS程序2.2 JS 书写格式2.2.1 ⾏内格式2.2.2 内嵌格式2.2.3 外部格式2.3 注释2.4 消息打印3.JS 基础语法3.1 定义变量3.2 JS 数据类型3.3定义⽅法3.4 条件判断3.4.1 if3.4.2三元表达式3.4.3 switch3.5循环语句3.5.1 while 循环3.5.2 for 循环4.JS 操作 DOM4.1 得到控件4.2 操纵

2022-05-05 16:55:35 800

原创 11、学习总结:CSS篇

目录1.什么是CSS2.CSS 基本语法3.CSS 类型3.1 ⾏内样式3.2 内部样式3.3 外部样式3.4 多种样式优先级4.代码⻛格4.1 样式格式4.2 样式⼤⼩写5.选择器5.1 选择器功能5.2 选择器种类5.2.1 标签选择器5.2.2 类选择器5.2.3 id 选择器类选择器 VS id选择器5.2.4 通配符选择器5.3总结6.常⽤元素属性6.1 字体属性6.1.1 设置字体6.1.2 字体⼤⼩6.1.3 字体粗细6.1.4 ⽂字样式6.1.5 ⽂本属性1.什么是CSSCSS:层叠样式

2022-05-04 12:09:46 883

原创 10、学习总结:HTML篇

目录1.HTML 结构1.1 HTML ⽂件基本结构1.2 标签层次结构1.3 快速⽣成代码框架2.HTML 常⻅标签2.1 注释标签2.2 标题标签: h1-h62.3 段落标签: p2.4 换⾏标签: br注:使用的软件是Microsoft VS Code。1.HTML 结构HTML:全称为HyperText Markuo Language,超文本标记语言,是一种用于创建网页的标准标记语言。HTML 代码是由 “标签” 构成的.●标签名 (如body) 放到 < > 中●⼤部分

2022-04-27 22:19:45 107

原创 9、多线程7

目录一、常见锁策略1乐观锁1.1定义:1.2实现:CAS机制1.3 CAS应用a.⾮线程安全的代码b.AtomicInteger的基础使用c.CAS解决线程安全问题1.4 CAS存在ABA问题1.5 ABA问题解决方案:AtomicStampedReference一、常见锁策略锁策略不仅仅是局限于 Java , 任何和 “锁” 相关的话题, 都可能会涉及到以下内容. 这些特性主要是给锁的实现者来参考的,对于合理的使⽤锁也是有很⼤帮助的。1乐观锁1.1定义:乐观锁认为⼀般情况下不会出现冲突,所以只会

2022-04-24 21:56:20 620

原创 8、多线程6

目录一、单例模式1.1单例模式的实现步骤:1.2饿汉方式的实现1.3懒汉模式的实现一、单例模式**单例模式能保证某个类在程序中只存在唯⼀⼀份实例, ⽽不会创建出多个实例.**这⼀点在很多场景上都需要,⽐如 JDBC 中的 DataSource 实例就只需要⼀个。单例模式具体的实现⽅式, 分成 “饿汉” 和 “懒汉” 两种:1、饿汉⽅式(线程安全,可能会造成资源的浪费):程序启动之后,里面创建单例对象。2、懒汉⽅式(使⽤时才加载,可以避免资源不必要的浪费):当有程序调用单例对象的时候才初始化。1

2022-04-21 18:52:32 73

原创 7、多线程5

目录一、传统线程的缺点:二、线程池是什么三、线程池的优点四、线程池的使用:两种实现方式:七种实现方法:1.创建一个固定大小的线程池: Executors.newFixedThreadPool1.1有返回值的线程池一、传统线程的缺点:1.创建线程需要开辟本地线程栈、虚拟机栈、程序计数器等私有线程内存,消耗的时候也需要释放这些内存,频繁的创建和销毁线程是需要消耗系统资源的;2.线程没有任务管理的功能, 当任务量远远⼤于线程可以承载的数量之后,不能对任务进行管理或者拒绝任务。二、线程池是什么线程池(T

2022-04-20 22:40:15 128

原创 6、多线程4

目录一、死锁定义一、死锁定义死锁是指两个或两个以上的进程在执⾏过程中,由于竞争资源或者由于彼此通信⽽造成的⼀种阻塞的现象,若⽆外⼒作⽤,它们都将⽆法推进下去。也就是两个线程拥有锁的情况下,⼜在尝试获取对⽅锁,从⽽造成程序⼀直阻塞的情况。import java.util.concurrent.TimeUnit;/** * 死锁示例 */public class ThreadDemo23 { public static void main(String[] args) {

2022-04-16 18:35:44 70

原创 5、多线程3

目录一、观察以下代码和执行结果:二、volatile 解决内存可⻅性和指令重排序问题三、锁3.1 内置锁:synchronized① synchronized 基本使⽤1.修饰静态⽅法一、观察以下代码和执行结果:import java.time.LocalDateTime;/** * 内存可见性问题 */public class ThreadDemo21 {//全局变量(类级别) private static boolean flag=true; public static

2022-04-15 19:39:11 443

原创 测试总结二

目录一、软件测试的生命周期(软件测试的流程是什么?)1.1软件测试&软件开发生命周期二、如何描述一个BUG?三、如何定义bug的级别四、bug的生命周期五、问题:发现一个BUG,开发人员修改了,通知测试人员验证,但是测试人员又复现了这个BUG,是什么原因引起的?六、测试人员因为一个BUG和开发人员产生冲突,怎么办?一、软件测试的生命周期(软件测试的流程是什么?)需求分析→测试计划→ 测试设计、测试开发→ 测试执行→ 测试评估需求分析:分析需求;验证需求的正确性、合理性;细化需求,根据需求取提炼

2022-03-30 22:25:01 317

原创 测试总结一

一、什么是软件测试?最常见的理解是:软件测试就是找BUG,发现缺陷。软件测试就是验证软件产品特性是否满足用户的需求。二、软件测试的特点:软件测试只是一个样本试验,具有不可穷尽性。三、软件测试和开发的区别1、 难易程度:开发:广度小,专业度高。测试:所需技能比较广泛,专业度低。2、工作环境: 基本类似3、薪水 :中小企业总体测试比研发低;自动化等专业测试领域和研发基本无差距。大厂研发、测试基本无差别。4、发展前景: 自动化测试、安全测试等领域发展前景和研发基本一致。5、繁忙程度: 敏

2022-03-29 23:22:05 827

原创 4、多线程2

目录一、线程常用方法1.1线程等待 join1.2线程终止a) ⾃定义标记符进⾏中断b) 使⽤Interrupt()进⾏中断isInterrupted VS interrupted使用 stop 停止线程1.3 yield 让出执⾏权1.4获取当前线程一、线程常用方法1.1线程等待 join等待某个线程执行完之后,再执行后续的代码。优点:写法更优雅,运行时所用的资源更少。有时,我们需要等待⼀个线程完成它的⼯作后,才能进⾏⾃⼰的下⼀步⼯作。应用场景:例如,李四只有等张三下班了他才上班,这时我们需

2022-03-28 23:20:40 318

原创 编写代码, 实现多线程数组求和.

给定一个很长的数组 (长度 1000w), 通过随机数的方式生成 1-100 之间的整数.实现代码, 能够创建两个线程, 对这个数组的所有元素求和.其中线程1 计算偶数下标元素的和, 线程2 计算奇数下标元素的和.最终再汇总两个和, 进行相加.记录程序的执行时间.方法一:import java.util.Random;/** * 课后题:实现数组相加 * 实现思路1:使用普通线程,把线程的随机数值存起来 */public class ThreadDemo18 { static i

2022-03-28 17:01:28 270

原创 3、多线程

目录一、线程使⽤1.1 线程休眠演示打印电影字幕1.2 多线程 VS 单线程性能1.3 线程的 3 种创建⽅式1.3.1继承Thread进行实现(2种写法)方法1:继承 Thread, 重写 run方法2:继承 Thread, 重写 run, 使用匿名内部类start ⽅法 run ⽅法的区别:继承Thread新建线程的缺点:1.3.2实现Runnable接口进行实现(3种写法)方法1:实现Runnable接口方法2:匿名 Runnable ⽅式方法3:使⽤ Lambda 匿名 Runnable ⽅式(⽀持

2022-03-24 16:05:58 94

原创 2、枚举和Lambda表达式

目录一、枚举1.1switch判断1.2枚举常用方法1.2.1 values()1.2.2 ordinal()1.2.3 valueOf()1.2.4compareTo()1.3枚举的优缺点二、Lambda表达式2.1为什么要使用Lambda表达式?(Lambda表达式的优点)2.2基本语法2.3 Lambda 和函数式接⼝2.3.1 函数式接⼝2.4 Lambda 的变量捕获2.5 Lambda 在集合中的使⽤2.5.1 Map 中的 forEach2.5.2 List 排序2.5.3 List 查找2.

2022-03-21 14:29:41 600

原创 1、计算机是如何工作的?

目录一、冯诺依曼体系结构二、硬件——CPU是如何工作的?1、算术单元一、冯诺依曼体系结构现代的计算机, 大多遵守冯诺依曼体系结构。除了冯诺依曼体系结构,还有计算机的二进制也是冯诺依曼发明并提出的。CPU 中央处理器: 进行算术运算和逻辑判断.存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)输入设备: 用户给计算机发号施令的设备.输出设备: 计算机个用户汇报结果的设备.内存vs外存:1、内存小,外存大2.内存的制作工艺高因此比较贵,外存成本低3.内存操作速度快(纳秒级别

2022-03-18 23:30:18 951

原创 mysql学习总结十一:JDBC编程

目录一、数据库编程的必备条件二、程序是怎样操作数据库的?三、什么是JDBC?四、JDBC的定义五、JDBC的工作原理和优点六、JDBC的使用6.1创建项目并添加MySQL驱动6.2使用代码操作数据库七、完整代码及结果:一、数据库编程的必备条件编程语言,如Java,C、C++、Python等数据库,如Oracle,MySQL,SQL Server等数据库驱动包:不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如:MySQL提供了Java的驱动包mysql-connector-java,需要基

2022-03-13 01:26:09 1063

原创 mysql学习总结十:事务

一、什么是事务?事务(Transaction)是将⼀组操作封装成⼀个执⾏单元(封装到⼀起),这⼀个执⾏单元要么⼀起执⾏成功,要么⼀起失败,不会出现执⾏“⼀半”的情况。注意:数据库引擎InnoDB才支持事务,MyISAM不支持事务。二、为什么要使用事务?以银⾏转账为例,张三给 李四 转账,那么它的执⾏流程是这样的:1、张三账户 -500 update account set money=money-500 where name = ‘张三’;2、B李四账户 +500 update ac

2022-03-11 14:02:50 1656

原创 mysql学习总结九:索引2

目录一、(InnoDB下MySQL)索引的实现原理二、必问的面试问题:聚簇索引/聚集索引/主键索引和非聚簇索引/二级索引/非聚集索引的区别。三、索引校验:确认创建的索引是否生效四、建表的时候创建索引:五、索引失效场景1、联合索引不满足最左匹配原则(也叫前缀匹配)2、使用错误的模糊查询3、索引查询使用运算操作(+ - * /)4.查询的列使用了函数5.查询的列使用了隐式的类型转换6.使用not null一、(InnoDB下MySQL)索引的实现原理索引的实现经历了 3 个阶段的升级:⼆叉树、 B 树、

2022-03-08 19:36:07 442

原创 mysql学习总结八:索引的基础知识

目录一、什么是索引二、说一下mysql的数据库引擎,mysql常见的引擎有哪些?三、索引的作用四、使用场景五、查询数据库引擎六、为什么要使用索引?七、索引的优缺点八、注意事项九、索引的分类十、使用索引本文讲的索引/事务都是基于Mysql5.5之后默认的数据库引擎InnoDB一、什么是索引索引是⼀种特殊的⽂件,包含着对数据表⾥所有记录的引⽤指针。可以对表中的⼀列或多列创建索引,并指定索引的类型,各类索引有各⾃的数据结构实现。索引通俗的理解,就是书的目录,通过这个目录就 可以快速找到对应的内容(通过索引我

2022-03-08 14:32:07 458

原创 mysql学习总结七:高级SQL查询

一、聚合查询常⻅的统计总数、计算平局值等操作,可以使⽤聚合函数来实现,常⻅的聚合函数有:1.count()函数返回查询到的数据的条数。1.1用法一:推荐使用,这种是最标准的count用法,在sql server等别的数据库中也可以使用。可以查询到所有null和非null的数据总和。1.2用法二:可以查询到所有null和非null的数据总和。但兼容性不是很好,在mysql中可以使用,其他数据库不一定能使用。1.3用法三:统计当前字段(列)中非null数据的数量。2.sum()函数

2022-03-07 14:31:04 404

原创 mysql学习总结六:表设计和表关系

一、表设计表的约束保证了插入数据的正确性,要想设计一个结构合理的关系型数据库,必须满足一定的范式,下面我们来学习数据库设计的三范式。1.第一范式:确保表的每列是最小的不可分割的原⼦值。第⼀范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原⼦值,就说明该数据库表满⾜了第⼀范式。第⼀范式的合理遵循需要根据系统的实际需求来定。⽐如某些数据库系统中需要⽤到“地址”这个属性,本来直接将“地址”属性设计成⼀个数据库表的字段就⾏。但是如果系统经常会访问“地址”属性中的“城市”部分,那么就要将“地址”这

2022-03-02 15:00:35 1974 2

原创 Java:删除公共字符串问题和组队竞赛问题

1、整一个选择题🤣假设 A 类有如下定义,设 a 是 A 类的一个实例,下列语句调用哪个是错误的?()public class A{ public int i; static String s; void method1(){} static void method2(){} } A System.out.println(a.i);B a.method1();C A.method1();D A.method2();知识点:stat

2022-03-01 21:20:37 412

原创 Java:求最小公倍数和两种排序方法问题

1、求最小公倍数//求最小公倍数import java.util.Scanner;public class Main8 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while (sc.hasNext()){ int a=sc.nextInt(); int b=sc.nextInt();

2022-03-01 16:20:41 344

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除