- 博客(47)
- 收藏
- 关注
原创 初识Load Runner
virtual User Generator(VUG)-----将脚本放到对应的测试场景中 -----> Controller ----- 场景运行结束 -----> Analysis。当虚拟用户逐渐启动的时候,Running折线逐渐上升,当所有的虚拟用户启动完毕之后,Running这条曲线就稳定下来,达到水平状态。学习目标:通过Controller设计简单的测试场景,简单的分析性能测试报告。Finish曲线开始一直是0,在Running逐渐下降的时候,才进行上升。每个组件分别是干什么的?
2023-09-26 18:47:56 142
原创 性能测试基础知识1
1. 什么是性能测试1.1 生活中遇到的软件性能问题1.2 性能测试定义1.3 性能测试和功能测试的区别1.4 软件性能好 / 坏的表现1.5 影响软件性能的因素2. 为什么要做性能测试3. 性能测试常见术语以及衡量指标(重点)并发用户数响应时间用户响应时间请求响应时间影响软件响应时间的因素事务响应时间每秒事务通过数点击量点击率吞吐量吞吐率思考时间资源利用率【面试】做性能测试的时候都关注哪些指标4. 性能测试分类基准性能测试负载性能测试压力性能测试
2023-08-19 20:10:56 171
原创 自动化测试Junit
Junit5注解@Test@Disabled@BeforeAll、@AfterAll、@BeforeEach、@AfterEach参数化单参数多参数CSV获取参数方法获取参数测试用例执行顺序断言 assert断言相等断言不相等断言为空断言不为空测试套件自动化测试项目1. 熟悉项目2. 针对核心流程设计手工测试用例3. 将手工测试用例转换成自动化测试用例4. 部署
2023-06-05 19:00:00 883 1
原创 springMVC
Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中。他的正式名称叫做“Spring Web MVC”,来自其源模块的名称(Spring-webmvc),但它通常被称为 SpringMVC。spring:一个core框架,只有spring核心的一些源码和工具,不具备HTTP通信的能力SpringMVC :spring整个体系中的web模块,提供了一个web框架,可以实现HTTP响应。
2023-06-01 12:00:00 488
原创 MyBatis 环境搭建+基本使用
MyBatis是优秀的持久层框架,支持自定义SQL,存储过程以及高级映射。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。使用MyBatis是更简单完成程序和数据库交互的工具,可以更简单的操作和读取数据库工具。
2023-05-31 09:00:00 691
原创 软件测试基础概念
软件测试的生命周期如何描述一个bug如何定义bug的级别bug的生命周期产生争执怎么办(处理人际关系)如何开始第一次测试测试的执行和bug管理如何发现更多的bug
2023-05-30 13:41:50 888
原创 自动化测试selenium
自动化测试相关理论、什么是自动化测试、selenium、selenium 是什么、selenium 特点工作原理、实操(selenium + Junit)、selenium + Java 环境搭建、selenium 常用api定位元素、常用的操作测试对象、click、sendKeys、submit、clear、getText、getAttribute、等待、信息获取、浏览器操作、浏览器前进后退、浏览器滚动条、浏览器窗口大小、键盘操作、鼠标右击、定位一组元素、多层窗口定位 (frame切换)、下拉框
2023-05-21 19:08:16 1721
原创 测试进阶-软件测试的分类
按照测试对象划分界面测试 *可靠性测试如何进行可靠性测试容错性测试文档测试兼容性测试 *易用性测试 *安装卸载测试 *安全测试性能测试内存泄漏测试按照是否查看代码划分黑盒测试白盒测试灰盒测试按照开发阶段划分测试金字塔单元测试集成测试系统测试回归测试冒烟测试验收测试按照测试实施组织划分α测试β测试α测试 和 β测试的区别第三方测试按是否运行划分静态测试动态测试按是否手工划分手工测试自动化测试按测试地域划分国际化测试本地化测试
2023-05-19 14:09:17 374
原创 测试用例02
基于需求设计测试用例分析需求,验证需求,细化需求,从需求中提取一个个的测试点,根据每一个测试点,采用取设计测试用例:有多细致的需求,就有多细致的测试用例,测试用例对需求的覆盖率就越高测试用例是根据写的具体的设计测试用例的方法。
2023-05-19 09:37:22 846
原创 spring事务和事务传播机制
不需要手动的开启和提交事务,进入方法时自动开启事务,方法执行完后回自动提交事务,如果中途发生的没有处理的异常,就会自动回滚事务。如果声明式事务发生异常,并添加了try-catch 的情况,这时就有可能出现异常:事务不会自动回滚,就会导致业务执行出错。spring事务传播机制定义了多个包含了事务的方法,相互调用时,事务是如何在这些方法间进行传递的。事务在MYSQL中有3个重要操作:开启事务、提交事务、回滚事务,在外部事务回滚,如果外部事务回滚,那么内部事务也会被回滚。注解,如果正常结束,就提交事务。
2023-05-17 20:55:41 445
原创 在项目中途快速添加spring boot依赖的方法
在pom.xml文件中,右键 Generate --> Edit Starters。表示从spring io中拉去插件信息,直接点击OK。安装插件EditStarters(重启idea)
2023-04-27 14:11:25 113
原创 SpringBoot配置文件
这里的setting需要设置两边,一个是当前项目的配置文件,另一个时所有新项目的配置文件。如果在项目中想要主动的读取配置文件中的内容,可以使用@value注解来实现。properties 以键值的形式配置的, key和value之间以。注意:key和value之间使用英文冒号加空格的方式组成,空格不可省略。整个项目上,所有的重要数据都在配置文件中配置,例如。yml是树形结构的配置文件,他的基础语法是。配置⽂件中使用 # 来添加注释信息。生产环境prod端口号:8888。开发环境dev端口号:6666。
2023-04-26 18:18:23 392
原创 Spring更简单的读取和存储对象
在 Spring 中想要更简单的存储和读取对象的核心是使用注解。使用类注解(5大类注解)@Controller 控制器:验证用户请求的数据的正确性(安保系统)@Service 服务:编排和调度具体的执行方法的(客服)@Repository 仓库 服务持久层:和数据库交互(执行者)= DAO层(Data Access Object)数据访问层,Repository是DAO中的一种实现。@Component 组件: (工具类)
2023-04-15 09:45:50 65
原创 WEB基础【JavaScript】
JavaScript最初只是为了进行前端页面开发,后面有了更多的功能:开发桌面程序、手机app、服务器端的程序等。JS是运行在浏览器上的,比如chrome里面专门有一个模块,就是JS引擎,相当于JVM一样,能够解释执行JS代码,后面把这部分代码单独拿出来,封装成独立的程序,称为V8引擎。
2023-04-08 20:17:04 300
原创 spring的创建和使用
虽然简洁,但如果spring中一个类型存储了多个实例,那么使用类型获取bean就会报错。:一次性加载并初始化所有的bean对象。特征:节省内存,但调用时才加载初始化,bean到spring中,性能不高。:lazy load,需要哪个才去加载。这里的存储是声明式的,真正的存储在第三大步的第1或第2步。特征:比较费内存,但是一次性加载后,之后的读取会非常的快。spring中一个类型存储的多个实例,是不相同的。出现这两部分,说明maven项目初始化好了。来作为 Spring 的上下文。之外,我们还可以使用。
2023-04-08 17:50:49 85
原创 初识软件测试
软件测试就是验证软件产品的特性是否满足用户的需求。测试验证软件是工作的,验证软件功能执行的正确性测试的活动以测试人员 “预期的结果”为依据,这里的预期结果值需求定义。
2023-04-05 11:02:47 43
原创 初识JVM
JVM启动时,会申请一整个很大的内存区域。JVM是一个应用程序,要从操作系统申请内存。JVM根据需要,把整个空间,分成几个部分。每个部分有各自不同的功能作用。Native Method Stacks(本地方法栈):给调用native方法(JVM内部的方法)准备的栈空间。native就表示JVM内部的C++代码。JVM Stacks(虚拟机栈):给Java代码使用的栈。这里的栈有很多个,每个线程有一个栈。
2023-04-03 19:31:18 89
原创 如何将网站部署到云服务器
在云服务器的MySQL中,建库建表。使用mysql -uroot 打开数据库客户端,把之前写好的db.sql复制执行即可。微调本机代码。本地的数据库,端口号,用户名,密码可能不同。云服务器数据库默认没有密码打包程序。使用maven打包成war包把打包好的war包拷贝到云服务器下的tomcat下的web apps目录下。记得启动tomcat服务器【bin目录下 sh startup.sh】。可以用netstat验证tomcat是否启动成功检查服务器的防火墙/安全组,是否正确打开登录验证
2023-04-02 14:53:00 221
原创 博客系统1
这里的路径blog,设置的和博客列表页是同一个,此处是不是同一个都行,这里约定成同一个路径,就直接在BlogServlet中修改,约定成不同的路径,就创建新的类,在新的类中实现。博客列表页:让博客列表页在加载的时候,通过Ajax给服务器发送一个请求,服务器查数据库,获取到博客列表数据,返回给浏览器,浏览器在根据数据构造页面内容。当用户访问 博客列表页 / 详情页 / 编辑页时,要求用户必须是已经登录的状态,如果用户没有登录,就会强制跳转到登录页面。如果用户已登录,相安无事,如果未登录,页面跳转到登录页。
2023-03-27 18:20:40 25
原创 cookie&session&模拟登陆
接着浏览器发送登录请求,针对客户端发送的登录请求,服务器会查询数据库,验证用户信息是否正确,如果正确,则登录成功,【这时网站会把当前用户的身份信息在内存中也保存一份,同时给这个用户分配一个表示身份的身份序号(唯一的)这里的身份序号称为sessionId,服务器使用hash表的结构,将身份序号作为key,身份信息作为value,存储起来。在浏览器的后续请求中,服务器收到cookie中的身份序号,就会查询hash表,判断该用户是谁,如果查到了,就继续执行用户输入的操作,避免重复多次的输入账号密码。
2023-03-21 16:05:20 331
原创 servlet-API
HttpServlet面试题:servlet的生命周期doGetdoPostdoPut / doDelete / doOptions端口被占用HttpServletRequestAPI前端给后端传参:1. GET query string2. POST form3. POST json使用jackson 解析json格式jackson格式总结:从请求中获取参数HttpServletResponse前后端交互实例
2023-03-16 14:25:45 43
原创 web基础【css】
CSS独立的语言:声明式语言(和sql语言类似) 只声明结果,“我”想要什么,不管过程针对哪些元素,给定那些样式,通过选择器(selector)
2023-03-14 17:26:01 38
原创 HTTPS 的加密流程
同理,客户端收到后,使用同样的hash算法,针对其他字段再次计算hash值,得到hash2,如果hash(签名中结出来的)和hash2(客户端自己算的)两个值相同,说明证书是有效的,没有被篡改的。然而,HTTP在web浏览器和网站服务器之间传递信息时,HTTP是以明文方式发送内容,这时如果黑客截取了浏览器和网站服务器之间的报文,就直接获取到了传输的信息,这是不安全的。客户端使用公钥,对对称密钥进行加密,传输给服务器,服务器用私钥解密,得到对称密钥后,客户端和服务器就可以使用对称密钥进行后续传输了。
2023-03-14 11:33:23 71
原创 servlet创建
Tomcat给程序员提供了一组API,让程序员更方便的去创建HTTP --- servletservlet 创建过程1. 创建maven项目 。(针对pom.xml进行修改)2. 引入依赖 。在maven中servlet(servlet API对应的jar包)在pom.xml中新增``,引入maven的dependency,也把这一段配置称为该依赖在maven仓库的坐标
2023-03-14 09:41:09 420
原创 web基础【html】
输入相关的标签:form表单 + button:submit 提交按钮常见接受用户用户输入的标签有:input.text : 文本输入input:password :密码输入input:radio :单选input:checkbox :多选select + option :下拉选项textarea :input:date/datetime/color :提交的时候,name作为key,用户的输入或者input中的value属性作为提交时的value针对单选和多选,只
2023-03-04 18:37:55 37
原创 web基础【HTTP】
1.没有Web服务器,我们不需要提HTTP协议2.没有Web服务器的时候,只能在资源所在的电脑_上,通过浏览器访问资源3.有了Web服务器,可以为所有电脑提供服务,只要有网络和Web服务器所在的电脑连接,则,都可以访问web资源4. IP地址分为内网地址和外网地址酒店的房价电话: 4529 (内网号)平时使用的电话: 139XXX (外网号)我们平时的电脑,一般是没有外网地址即使我们现在使用了Web服务器,也只能在局域网内有效HTTP 是一种纯文本协议,控制信息是纯文本的,但其携带的数
2023-02-20 23:02:22 615
原创 网络层简析
当IP数据报携带的数据太长了,就会在网络层对数据进行拆分,把一个数据拆分成多个IP数据报,在分别发送,接收方再拼装。因此,除了最后一个报文之外,其他报文的长度必须是8的整数倍,否则报文就不连续了。数据报到达目的地的最大报文跳数。NAT网络地址转换,本质是使用一个IP代表一批设备,提高IP地址的利用率,使用端口区分。8位服务类型(TOS):实际只有4位有效,4位中只有1位可以是1,其他都是0。报头中有一个选项部分,是变长的,此处单位也是4字节。4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。
2023-02-14 16:11:08 25
原创 Java时间复杂度与空间复杂度经典例题
时间复杂度大O的渐进表示法空间复杂度冒泡排序的时间复杂度和空间复杂度二分查找时间复杂度和空间复杂度递归的时间复杂度和空间复杂度斐波那契数列递归与非递归的时间复杂度和空间复杂度
2022-12-20 22:21:13 243
原创 线程基本知识总结
线程是调度的基本单位,状态是针对当前的线程调度的情况来描述的,因此状态 是线程的属性。在Java中对于线程的状态有:1. new:创建了Thread对象,但是还没有调用start(就是说内核里还没有创建对应的PCB)2. terminated:终止。表示内核的PCB已经执行完毕,但是Thread对象还在3. runnable:可运行的 - 正在CPU上执行的 - 在就绪队列中,随时可以去CPU上执行的4. waiting:5. timed_waiting:6. blo
2022-11-27 11:18:12 294
原创 简单的JDBC操作
JDBC的作用就是,用程序来执行SQL语句操作。可以使用JDBC对程序进行增、删、改、查。首先,我们尝试使用JDBC 往数据库中插入一个记录需要执行5步1. 创建`DataSource`数据源。描述MySQL数据库在哪2. 和数据库建立连接3. 构造SQL语句4. 执行SQL,针对增、删、改操作 使用`executeUpdate()`来执行;针对查操作使用`PreparedStatement()`来执行5. 断开连接,释放资源
2022-11-23 09:31:38 57
原创 操作系统基础
同一个进程的多个线程之间,共用了进程的同一份资源(这里的资源主要指的是内存和文件描述符表)【比如说在线程1中new的对象,在线程2,3,4中都可以直接使用】【在线程1中打开的文件,在线程2,3,4中都可以直接使用】操作系统在进行进程切换时,需要把进程执行的中间状态记录并保存好,以在下次这个进程再次运行的时候可以恢复上次的状态。在这里创建了一个类,实现了Runnable,同时创建了类的实例,并传给Thread的构造方法。程序中所获取到的内存地址,并不是真实的物理内存的地址,而是经过一层抽象,虚拟出的地址。
2022-11-22 14:46:00 157
原创 sql数据库基础
在SQL中常用decimal(M,D) 表示浮点数类型,M指定长度,D指定小数位数,是精确数值 ,但他牺牲了存储空间和运算速度才换得了精确的表示方法。MySQL的utf8编码不是真正的utf8,没有包含某些复杂的中文字符。varchar(32)表示最多存储32个字符,并不代表一定会分配32个,但是最终的存储位置一定不会超过32。varchar(size):是最常用的字符串类型,带一个参数用来约定存储的最大空间。常见的浮点型float和double会发生精度丢失。use 数据库名;use 数据库名;
2022-11-01 10:50:02 78
原创 java练习-图书管理系统
程序实现了退出操作、查询图书操作、添加书籍操作、删除书籍操作、展示书籍操作、借出书籍操作、归还书籍操作。其中AdminUser包含:退出操作、查询操作、添加书籍操作、删除书籍操作、展示书籍操作。NormalUser包含:退出操作、查询操作、借出书籍操作、归还书籍操作。
2022-09-09 14:22:39 495 1
原创 Java中main函数中的String[] args是什么意思
Java中main函数中public static void main(String[] args) 的String[] args是什么意思?
2022-09-05 16:24:21 1071
原创 Java基础学习-抽象类和接口
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的。比如:动物类,形状类abstractabstractfinalabstractstaticabstractfinalstaticfinal比如说,我们定义了一个Shape类,用来描述形状,定义了三角形类,正方形类等形状,让他们继承shape类,重新抽象类的抽象方法,也就是draw()方法。
2022-09-04 13:26:09 153
原创 Java基础学习-重载和重写
重写(override):也称为覆盖。在子类中把父类本身就有的方法再写一遍。【一定发生在继承上】**重写是子类对父类非静态、非private修饰,非final修饰,非构造方法等的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!**重写的好处在于子类可以根据需要,定义特定于自己的行为。也就是说子类能够根据需要实现父类的方法。【方法重写的规则】@Override。......
2022-08-08 14:27:19 137
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人