自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 性能测试基础

响应时间Response Time,简称RT,指的是服务端处理完一个请求所花费的时间,通常时间单位为毫秒ms。在系统达到性能瓶颈之前,TPS和并发数成正比关系,即并发数越高,TPS越高;测试方法以及场景设计原则(基准测试、单交易负载测试、混合场景测试、高可用性测试、稳定性测试、其他特殊场景)服务端性能:测试服务端项目程序的支持的并发、处理能力、响应时间等,主要通过接口来做性能测试。TPS和平均响应时间成反比关系,即平均响应时间越小,TPS就越高。平均响应时间越短,代表性能越好,TPS就越高。

2023-12-11 21:15:17 1857

原创 selenium原理

3、浏览器驱动程序中定义了selenium所有的操作对应的操作, Command.GET: (‘POST’, ‘/session/$sessionId/url’) 这个地址就是实现访问一个网址的url。2、向浏览器驱动发送请求,并返回特定响应信息(新建了一个sessionid),打开浏览器。2、浏览器驱动(webdriver)。不同的版本、不同的浏览器都需要对应的驱动;1、cmd命令,启动chromedriver.exe浏览器驱动。4、浏览器通过驱动程序把测试结果返回到脚本。

2023-12-05 22:47:27 821

原创 docker安装redis

接下来就是要将redis 的配置文件进行挂载,以配置文件方式启动redis 容器。(挂载:即将宿主的文件和容器内部目录相关联,相互绑定,在宿主机内修改文件的话也随之修改容器内部文件)2)、挂载redis 的持久化文件(为了数据的持久化)。docker search redis查看,或者登录。redis.conf 可以通过官网下载。1)、挂载redis的配置文件。docker挂载配置文件。

2023-12-04 17:13:49 642

原创 python练习——找出字符串最后一个只出现一次的字符,并且找到下标

【代码】python练习——找出字符串最后一个只出现一次的字符,并且找到下标。

2023-12-04 00:13:49 869

原创 Jenkins——节点

Jenkins服务运行在一台服务器上,但是服务器的资源时有限的,那Jenkins服务的构建速度也是有限的。当项目比较多或规模大时,会超出Jenkins的构建能力。单个Jenkins不能满足需求,但是布置多个Jenkins服务比较麻烦,管理起来也比较麻烦。Jenkins提供节点管理,可以类似“分布式”的方式来满足不同的需求。Jenkins服务一般叫主机点,不同的node节点成为从节点。Jenkins服务类似与管理者,通过设置的连接方式,向节点。

2023-12-01 14:22:09 898

原创 Selenium——isDisplayed()、isEnabled()、isSelected()

isEnabled():boolean——用来判断界面元素是否是可用的,返回值为boolean值。返回boolean值,则可以考虑结合判断语句一起使用。isSelected():boolean——通过该方法来判断界面上的某个元素是否是选中状态。isDisplayed():Boolean——该方法用来判断页面上该元素当前是否显示。isDisplayed() 方法。isSelected() 方法。isEnabled() 方法。

2023-11-29 15:50:47 2128

原创 python-字符串常用方法

【代码】python-字符串常用方法。

2023-11-27 22:57:41 499

原创 python-if判断

【代码】python-if判断。

2023-11-27 22:41:51 514

原创 python数据类型

python数据类型。

2023-11-27 22:40:53 520

原创 python循环

可迭代对象时,例如字符串、元组、列表,多使用for循环。用户不断输入或者没有次数限制时,多使用while循环。

2023-11-27 22:39:54 646

原创 python运算符

逻辑运算符 and or not。

2023-11-27 22:38:55 675

原创 python字符串切片

z 间隔位置,也叫步长,默认1;正数从左1到右,负数从右到左。y 结束位置索引,不包括,默认到1结尾。x 开始位置索引,默认从头开始。

2023-11-27 22:37:54 452

原创 python字符串格式化

【代码】python字符串格式化。

2023-11-27 22:37:05 575

原创 自动化测试之xpath

通过匹配两个子节点来获取父类。

2023-11-25 14:46:10 542

原创 Cypress(2)——第一个Cypress测试脚本

cypress实现登录测试

2023-10-23 19:18:13 327

原创 Cypress(3)——调试Cypress脚本

调试Cypress脚本。

2023-10-23 19:17:04 383

原创 Cypress(4)——元素定位及操作

cypress元素定位

2023-10-23 19:15:35 493

原创 Cypress(1)——如何安装及测试类型简要介绍

Cypress近来非常火的测试框架,先来安装,简单使用一番。

2023-10-18 19:16:20 1275

原创 TestNg

在TestNG中,我们可以使用以下注释来执行测试类的配置,如设置/清理数据库,准备虚拟数据,部署/关闭服务器等。 @BeforeSuite - 对于套件测试,在此套件中的所有测试运行之前运行。@AfterSuite - 对于套件测试,在此套件中的所有测试运行之后运行。 @BeforeTest - 对于套件测试,在运行属于标签内的类的任何测试方法之前运行。 @AfterTest - 对于套件测试,在运行属于标签内的类的所有测试方法都已运行之后运行。 @BeforeGroups:在调用属于该组的第一个测试方法

2020-09-29 19:39:58 286

转载 集合——数组ArrayList

概述 基于数组实现,支持自定扩容的动态数组。 类图 实现一下4个接口 java.util.List 接口,提供数组的添加、删除、修改、迭代遍历等操作。 java.util.RandomAccess 接口,表示 ArrayList 支持快速的随机访问。 import java.util.*; public class RandomAccessTest { public static void traverse(List list){ if (list instanceof Ra

2020-08-24 16:26:12 282

原创 笔试

2020-07-18 17:49:26 349

原创 shell

1、查询某个接口访问ip及次数 grep ‘限制条件’ access.2020-07-01.log | awk ‘{ips[$1]++};END{for(i in ips){print i,ips[i]}}’ | awk ‘$2>100’ | sort -k2 -rn grep ‘/api/external/wireless/newMessageCount’ access.2020-07-01.log | awk ‘{ips[$1]++};END{for(i in ips){print i,ips

2020-07-01 16:56:32 313

原创 http&https

http协议 请求方式 方法 描述 GET 请求指定的页面信息,并返回实体主体。 HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 PUT 从客户端向服务器传送的数据取代指定的文档的内容。 DELETE 请求服务器删除指定的页面。 CONNECT HTTP/1.1协议中预留给能够将连接改.

2020-06-29 20:23:39 388 1

原创 多线程

在 Java 中实现多线程有两种手段,一种是继承 Thread 类,另一种就是实现 Runnable 接口。 线程状态 创建、就绪、阻塞、运行、终止 线程操作 join():一个线程强制运行,其他线程要运行必须等该线程结束之后才可以 sleep():线程休眠 interrupt():中断线程 setDaemon():后台线程 setPriority():线程优先级 yield():线程的礼让(一个线程调用此方法让其他线程先执行) 同步及死锁 synchronized(同步对象){ 需要同步的代码 }

2020-06-18 16:31:24 230

原创 Resources

针对于资源文件的统一入口。 ResourceLoader calsspath: file: http: url: (none) Resource resource = applicationContext.getResource(classpath:config.txt); resource.getFileName();

2020-06-10 19:37:41 207

翻译 线程池

线程池 优点 管理线程,避免增加创建线程和销毁线程的资源消耗。线程也是一个对象,创建一个对象需要经过类加载过程,销毁一个对象需要GC垃圾回收流程,都需要资源开销的。 提高响应速度。相对于从线程池拿线程,重新去创建一条线程执行速度要慢很多。 重复利用。线程用完放回线程池,可重复利用,节省资源。 构造函数 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,

2020-06-10 16:59:18 183

原创 Spring AOP

Aspect定义 在 Spring 中使用 Aspect 需要使用 @Component 直接将其标记为一个 Bean 并且使用 @Aspec 注解将其标记为一个切面 然后在该类中定义上面我们说的切点,通知等 Pointcut 定义 @Pointcut(“execution(public void WeixinService.share(String))”) public void shareCut() { } 切点定义在方法上,并使用 @Pointcut 注解,注解中的值便是切点的表达式 切点的名称就是

2020-06-09 19:42:38 296

原创 配置的

@Required @Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationException 异常。下面显示的是一个使用 @Required 注释的示例。 @Autowired @Autowired 注释可以在 setter 方法中被用于自动连接 bean,就像 @Autowired 注释,容器,一个属性或者任意命名的可能带有多个参数的方法。 Setter 方法中的

2020-06-09 11:55:41 249

原创 Spring Beans自动装配

byName 这种模式由属性名称指定自动装配。Spring 容器看作 beans,在 XML 配置文件中 beans 的 auto-wire 属性设置为 byName。然后,它尝试将它的属性与配置文件中定义为相同名称的 beans 进行匹配和连接。如果找到匹配项,它将注入这些 beans,否则,它将抛出异常。 <bean id="textEditor" class="com.tutorialspoint.TextEditor" autowire="byName"> &l

2020-06-09 11:15:06 336

原创 依赖注入

Spring框架的核心功能之一就是通过依赖注入的方式来管理Bean之间的依赖关系。 基于构造函数的依赖注入 package x.y; public class Foo { public Foo(Bar bar, Baz baz) { // ... } } 配置文件如下: <beans> <bean id="foo" class="x.y.Foo"> <constructor-arg ref="bar"/> &lt

2020-06-08 17:31:20 217

原创 Spring IoC容器

IoC容器 容器将创建对象,把它们连接在一起,配置并管理它们的整个生命周期,从创建到销毁。Spring容器使用依赖注入(DI)来管理组成一个应用程序的组件。这些对象称为Spring Beans。 Spring IoC容器利用java的POJO类和配置元数据(通过XML、java注解或java代码来表示)来生成完全配置和可执行的系统或是应用程序。“控制反转”指new实例工作不由程序员来做而是交给Spring容器来做。在Spring中BeanFactory是IcC容器的实际代表者。 两种不同类型的容器: Spr

2020-06-08 16:33:44 325

原创 约瑟夫环

约瑟夫环是一个数学的应用问题,具体为,已知 n 个人(以编号 1,2,3…n 分别表示)围坐在一张圆桌周围。从编号为 k 的人开始报数,数到 m 的那个人出列;他的下一个人又从 1 开始报数,数到 m 的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。这个问题的输入变量就是 n 和 m,即 n 个人和数到 m 的出列的人。输出的结果,就是 n 个人出列的顺序。 ...

2020-06-05 17:37:39 240

翻译 线性表

线性表:n个数据元素的有限序列,最常用的是链式表达,通常称为线式链表或者链表。

2020-06-05 17:03:30 215

翻译 HashMap

HashMap

2020-05-31 22:51:48 284

原创 数组及基本排序算法

数组 数组定义 一维数组 dataType[] arrayRefVar = new dataType[arraySize]; dataType[] arrayRefVar = {value0, value1, …, valuek}; 二维数组 type[][] typeName = new type[typeLength1][typeLength2]; Arrays类 java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。 asList public static <T&g

2020-05-27 20:17:13 362

原创 消息中间件

概述 消息队列是分布式系统的主要组件 主要优势: 通过异步处理提高系统性能(1、削峰,通过异步处理,将短时间高并发产生的事务消息存储在消息队列中,从而削平高峰期的并发事务;2、减少响应所需时间) 降低系统耦合性(消息发送者和消息接受者之间没有直接耦合,新增业务只要对该消息感兴趣即可订阅) 问题: 系统可用性降低(需要考虑消息丢失、MQ挂掉等) 系统复杂度提升(保证消息没有被重复消费、处理消息丢失的情况、保证消息传递的顺序性等) 一致性问题(消息的真正消费者并没有正确消费消息) 组成 Bro

2020-05-18 15:13:05 260

原创 redis

简介 为什么这么快? 基于内存,不受硬盘io 数据结构,操作简单 单线程(主线程(io时间处理、集群协调等)是单线程,所有读写请求由一个线程处理)。 可以处理并发吗? 多路io复用(根据不同系统选择不同多路复用函数,优先选择O(1),select保底) memchace区别 memcache 支持简单数据类型 不支持持久化 不支持分片 不支持主从 redis 类型丰富 支持持久化 支持主从 支持分片 类型&命令 String set strkey “这是一个字符串” get

2020-05-17 15:51:49 249

原创 mybatis中xml文件的${}和#{}区别

${} $是将传入的数据直接显示生成sql语句 ${}: 仅仅为一个纯碎的 string 替换,在动态 SQL 解析阶段将会进行变量替换 #{} #{}: 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符,一个 #{ } 被解析为一个参数占位符 。 使用#可以很大程度上防止sql注入。(语句的拼接),但是如果使用在order by 中就需要使用$. 在大多数情况...

2020-03-02 22:03:56 717

原创 timestamp with time zone >= character varying

Cause: org.postgresql.util.PSQLException: ERROR: operator does not exist: timestamp with time zone >= character varying Hint: No operator matches the given name and argument type(s). You might need...

2020-03-02 19:57:03 5462

原创 Mybatis使用时 resultMap & resultType、parameterMap & parameterType

resultMap & resultType 两者都是表示查询结果集与java对象之间的一种关系,处理查询结果集,映射到java对象。 resultMap 将查询结果集中的列一一映射到bean对象的各个属性。映射的查询结果集中的列标签可以根据需要灵活变化,并且在映射关系中,可以根据typeHandler设置实现查询结果值得类型转化,比如布尔型与0/1的类型转换,枚举值等。 <resu...

2020-02-28 22:18:31 390

空空如也

空空如也

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

TA关注的人

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