12 2022 档案
摘要:一、问题背景在使用 JMeter 压测时,发现同一后端服务,在单机 500 并发下,HTTP 和 HTTPS 协议压测 RT 差距非常大。同时观测后端服务各监控指标水位都很低,因此怀疑性能瓶颈在 JMeter 施压客户端。二、问题分析切入点:垃圾回收首先在施压机观察到 CPU 使用率和内存使用率都很
阅读全文
该文被密码保护。
摘要:一次性能调优记录:压测报错out of memory内存溢出1、首先这是一段压测的报错日志截图 2、服务器的配置还不错,执行机全64核以上,运存256g以上,服务器80核,512g,所有机器线程数设置655360 3、刚开始以为是jmeter和Tomcat服务器的JVM里面的堆内存,新生代和老年代的
阅读全文
摘要:第一步:先通过rpm -ivh命令在Linux系统中安装JDK配置JDK的环境变量 第二步:通过rz命令把jmeter的包上传到Linux系统里面,如果没有rz命令通过yum install lrzsz命令下载 第三步:解压jmeter压缩包,然后得到如下: 第四步:输入命令:vim /etc/pr
阅读全文
该文被密码保护。
该文被密码保护。
摘要:Java做UI自动化和app自动化中动态代理@FindBy的工作原理一、背景简介由于Selenium框架采用PageObject设计模式让测试代码与被测页面对象代码分离,因而提供了不少很方便的注解来达到目的,其中有一个注解就是@FindBy。在使用中,只要通过在field中使用注解,则可以将不同属性
阅读全文
摘要:启动IDEA的时候突然报错: 第一步:首先进入到C:\Users\用户名\.IdeaIC2019.3\config这个目录下面找到idea64.exe.vmoptions文件 第二步:通过notepad++打开,进入编辑 第三步:然后修改配置如下:把Xms和Xmx的参数值改大一些 -Xms1024m
阅读全文
摘要:Java中把一个字符串实现反转 /** * 使用StringBuilder的reverse()方法将字符串反转 */ public static void main(String[] args) { StringBuilder sb = new StringBuilder("ABCDE牛"); Sy
阅读全文
摘要:测试是软件发布的重要环节,单元测试在实际开发中是一种常用的测试方法,java单元测试主要用junit,最新是junit5,本人开发一般用junit4。因为单元测试能够在软件模块组合之前尽快发现问题,所以实际开发中投入产出比很高。实际使用难免会遇到异步操作的接口测试,最常用的情景是别人家的SDK封装了
阅读全文
摘要:hashmap不是线程安全的,有提供两种方法让hashmap支持线程安全方法一:通过Collections.synchronizedMap()返回一个新的map,这个新的map是线程安全的,要求大家习惯基于接口编程,返回的不是hashmap而是map的实现特点:通过Collections.synch
阅读全文
摘要:一、hashMap的底层实现hashmap的底层结构在jdk1.7之前是数组+链表,但是在jdk1.8以后,其变成了数组+链表+红黑树,这个操作会加快在链表时候的查询速度。当链表的长度大于8 的时候,链表就会变为红黑树,而当长度小于6的时候,会从红黑树变回链表。这里又有一个问题:为什么是8 和 6
阅读全文
摘要:一、什么是ConcurrentHashMapConcurrentHashMap和HashMap一样,是一个存放键值对的容器。使用hash算法来获取值的地址,因此时间复杂度是O(1)。查询非常快。同时,ConcurrentHashMap是线程安全的HashMap。专门用于多线程环境。 二、Concur
阅读全文
摘要:淘宝登录场景python+selenium移动滑块代码 #coding=utf-8 import time from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdriv
阅读全文
摘要:引用菜鸟教程git命令大全:https://www.runoob.com/git/git-basic-operations.html 1. 初始化项目git init2. 建立本地仓库和远程仓库的连接git remote add origin 远程仓库地址3. 已有项目只需克隆项目到本地,无需进行前
阅读全文
该文被密码保护。
摘要:1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。2xx (成功类)表示成功处理了请求的状态代码。200
阅读全文
该文被密码保护。
摘要:一、QPS: 每秒钟处理完请求的次数,注意这里是处理完,单接口看做是一个事务的话,1TPS=1QPS二、TPS:每秒钟处理完的事务次数,一般TPS是对整个系统来讲的。一个应用系统1s能完成多少事务处理,一个事务在分布式处理中,可能会对应多个请求,对于衡量单个接口服务的处理能力,用QPS比较多,TPS
阅读全文
摘要:1. 乐观锁 VS 悲观锁 乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度。在Java和数据库中都有此概念对应的实际应用。 先说概念。对于同一个数据的并发操作,悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。Java中
阅读全文
摘要:1、什么是单例和多例单例:所有请求用同一个对象来处理,通过单例模式,可以保证系统中一个类只有一个实例。多例:每一个请求用一个新的对象来处理。2、Spring 总的单例与多例Spring ioc 容器的bean 都是默认单例的,即spring 依赖注入Bean 实例默认都是单例的。Spring 提供了
阅读全文
该文被密码保护。
摘要:一、基准测试1)基准并发测试1:迭代100次 ramp up 1 看吞吐量tps80/sec和接口响应时间,错误率,说明rps为100/sec,但是服务器1秒钟只能处理80、全部处理完毕可能需要1秒多钟测试2:线程100 迭代1次 ramp up 2 rps实际上为50/sec、因为每秒发50个请求
阅读全文
摘要:编写一个SQL查询来报告 Person 表中每个人的姓、名、城市和州。如果 personId 的地址不在 Address 表中,则报告为空 null 。 以 任意顺序 返回结果表。 示例 : Person表: + + + + | personId | lastName | firstName | +
阅读全文