自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Kafka

==一个consumer group中的各个consumer消费的消息进度可能不一样,在长时间的消耗下,网络环境以及进程处理速度都会影响到consumer的消费速度,因此不同的consumer在同一时间,读到的各自消费的partition的offset肯定会不一样。A:当同一个device的消息在一定时间内积累到一定数量,就新增一个topic,将这个device的消息发送给这个topic,consumer group消费这个新topic里 的数据,相当于专门给这个device的消息开了一个线程组来消费。

2025-08-28 16:47:09 755

转载 yield

先大致说一下send函数的概念:此时你应该注意到上面那个的紫色的字,还有上面那个res的值为什么是None,这个变成了7,到底为什么,这是因为,send是发送一个参数给res的,因为上面讲到,return的时候,并没有把4赋值给res,下次执行的时候只好继续执行赋值操作,只好赋值为None了,而如果用send的话,开始执行的时候,先接着上一次(return 4之后)执行,先把7赋值给了res,然后执行next的作用,遇见下一回的yield,return出结果后结束。

2025-08-28 16:45:54 6

原创 异常捕获:raise & exception

三、Exception:捕获所有的异常。一、raise: 手动让程序引发异常。可以和Exception结合使用。二、Python标准异常。

2025-08-28 16:42:58 80

原创 Oauth 2.0

这样一来,用户认证授权相关的功能完全独立,统一在cc-gateway里处理,那么在使用cc-product, cc-device, cc-user等服务时,就不需要再次去授权,只根据token对应拿到其下的资源。cc-gateway后面的服务,都是该协议的资源服务,比如cc-device提供的API。工作机制: 云端接收到user的请求后,使用ak及其对应的相同的sk,并按照同样的认证机制生成认证字符串(类似于用户名和用户密码登录,随后生成一个token),并与用户请求中包含的认证字符串进行比对。

2025-08-28 16:41:27 238

原创 多人开发分支git pull 时遇到non-fast-forward报错

我远程上有一个dev分支,使用git pull时报错non-fast-forward。原因是在我commit前,另一位同事已经commit并且push到了远程分支。我在这位同事的操作之后,没有pull,而直接commit了自己的修改,然后再pull的时候,我的分支版本就已经比远程分支版本高了。每commit一次,分支版本就更新一次,比如一开始我和同事都是从远程pull下拉的版本A,随后同事commit了版本B,并且push到远程。我再在本地commit,版本就变成了C,再次commit,就变成版本D。此时

2025-08-27 10:37:14 301

原创 结合实战项目分析locust

因此这个数据在Jmeter设置越小,线程数达到峰值的时间越短;但在locust中,则需要Ramp up设置得越大,线程数达到峰值的时间就越短。你设置的 1个用户 并不代表只发 1个请求。wait_time = between(1, 5):用户每完成一个请求后,会等待 1~5秒 再执行下一个请求。如果用户的任务中没有延迟(或延迟很短),单个用户可以在短时间内发起大量请求。里的参数可以点进post去查看,注意url不需要跟域名,只跟路径即可。被它装饰的method代表一个任务,在任务里的请求将会按照顺序执行。

2025-07-24 20:41:53 263

原创 Jmeter脚本录制

打开浏览器的设置(Chrome为例),进入到隐私设置和安全性-安全页面。

2025-04-02 16:01:03 480

原创 系统崩溃原因分析及排查思路

内存溢出:新建的对象太多,且没有得到及时的释放。java语言里是有内存自动释放的机制,但这并不意味着开发人员在设计代码时不需要考虑释放内存,因为一来自动释放不会那么及时,二来开发人员也需要预先考虑一些场景。1、前端渲染组件太多引起的奔溃,这种一般是内存溢出,但也不排除有极小部分是CPU繁忙(如果前端存在复杂的计算逻辑)问题排查:查看日志,结合一些工具,有的工具可以定位到具体是哪个线程耗用资源最多。2、后端引起的奔溃:计算逻辑复杂,耗用CPU过多造成CPU繁忙;也可能占用内存太多,造成内存溢出。

2025-02-06 13:57:48 363

转载 使用locust做性能测试

locust -f <Python文件> --slave --master-host=<主节点的IP> --clients 50。–master-bind-host:master绑定的接口(主机名、ip)(默认:*(所有可用接口))–expect-workers-max-wait:主节点等待备节点的时间(默认:永远等待)90%ile (ms):90% 的响应时间(有 90% 的请求的响应时间小于或等于该值)99%ile (ms):99% 的响应时间(有 99% 的请求的响应时间小于或等于该值)

2025-01-15 17:05:37 220

原创 结合es日志定位到开发代码中的具体错误

问题:线上系统半夜崩溃。

2024-12-18 14:48:49 190

原创 prometheus+mysql_exporter监控mysql

1.修改 vim prometheus.yml 配置文件 并重启服务prometheus。注意:user和password可以使用mysql的登录用户名和密码也可以自己定义。把/etc/my.cnf中的skip-grant-tables注释再重启服务。prometheus+mysql_exporter监控mysql。4.在root目录下新建文件:.my.cnf。三.集成Grafana+prometheus。二.安装mysqld_exporter。5.进行.my.cnf文件配置。5.查看服务是否启动:s。

2024-02-19 22:13:57 660 1

原创 Redis & RabbitMQ

它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。

2024-02-19 22:05:40 682

原创 网络基础:通信原理及网络协议

在OSI模型中,冲突域被看作是第一层的概念,连接同一冲突域的设备有Hub,Reperter或者其他进行简单复制信号的设备。而第二层设备(网桥,交换机)第三层设备(路由器)都可以划分冲突域的,当然也可以连接不同的冲突域。由于许多设备都极易产生广播,所以如果不维护,就会消耗大量的带宽,降低网络的效率。由于广播域被认为是OSI中的第二层概念,所以像Hub,交换机等第一,第二层设备连接的节点被认为都是在同一个广播域。1、概念不同:广播域指的是所有接收广播信息的节点,冲突域指的是同一物理段中的节点。

2024-02-19 22:04:01 778

原创 webdriver.Remote&grid

2.在selenium官网下载Grid的jar包,根据官网的document(https://www.selenium.dev/documentation/grid/getting_started/)启动hub和node。b.启动jar包作为node,我这里是使用同一台机器既做hub,又做node,因此在terminal中打开两个标签页对此jar包分别以hub和node的方式启动即可。a.启动jar包作为hub,默认使用4444端口,浏览器中访问。在其他主机上运行webdriver,可用于分布式执行环境。

2024-02-19 21:45:57 496

原创 配置Python环境及job运行的虚拟环境

build job的时候会自动在/opt/jenkins(node主机的工作目录,在配置node时设置)下创建workspace目录,并创建以job名称为名字的子目录(如果没有做自定义配置的话)。从github上fetch的代码就会下载到/opt/jenkins/workspace/jobname中。1、配置Jenkins的Python环境:Manage Jnekins-Global Tool Configuration-Python。此插件会给每个job都创建一个虚拟Python环境。

2024-02-19 21:41:46 489

原创 忘记管理员密码

2、删除后,重启Jenkins,就可以无需登录而直接进入Jenkins。3、在用户管理中,可以看到admin用户,进入设置页面,重新设置密码。4、在全局安全配置中,重新配置安全策略。这一步的目的是为了删除用户安全策略。

2024-02-19 21:38:21 241

原创 163邮箱发邮件

如果build job后,显示发送邮件成功,但邮箱里就是没有收到,那么就是Extended Email Notification-Advanced中没有配置smpt username和password,这里使用的是添加凭据的方式配置。若提示权限问题,要么是密码没有填授权码(必须是授权码,而不是邮箱的登录密码),要么是Jenkins location中的邮箱管理员与Extended Email Notification中的发件邮箱不一致。我已经配置过了,所以这里会有一个使用设备。开启POP3/SMTP。

2024-02-19 21:36:48 907

原创 创建job

因为我配置的Credentials是ssh登录的方式,所以URL也要选择ssh方式的:git@gitlab.xxxx.com.cn:xx/xx/xx.git。

2024-02-19 21:30:00 166

原创 3、安装插件

安装后,会在 系统管理-全局系统工具 中出现 Python,在这里可以设置使用的Python路径,或者自动在该路径下安装Python。使用此插件可以将在console中出现的password加密,以防止密码泄露。支持从其他的Jenkins上远程导入job。用于构建后生成HTML报告。在job构建后发送邮件。

2024-02-19 21:24:40 437 1

原创 2、docker安装Jenkins

猜测是将/var/jenkins_home的工作目录挂载到本机/home/jenkins上后,便不再容器的工作目录中写入数据,而是直接在本机挂载目录上工作。3、解锁Jenkins时,/var/jenkins_home/secrets/initialAdminPassword不存在,排查后发现,不存在/var/jenkins_home目录。1、先下载jenkins镜像https://hub.docker.com/r/jenkins/jenkins/tags,选择lts的jenkins最新版本。

2024-02-19 21:23:45 645

原创 1、安装docker

9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥。要安装特定版本的 Docker Engine-Community,请在仓库中列出可用版本,然后选择一种安装。使用第二列中的版本字符串安装特定版本,例如 5:18.09.1。安装 Docker Engine-Community。使用以下指令设置稳定版仓库。更新 apt 包索引。

2024-02-19 21:20:39 654

原创 Jenkins配置node节点

这是在node配置的“Advanced”里设置Java路径错误,一定要设置到java级别:/usr/lib/jvm/java-8-openjdk-amd64/bin/java。1、配置ssh后无法连接到node,但是在master中使用root账户以ssh方式连接node成功。已经配置了公钥和私钥,但没有点开node配置中的“Advanced”去配置Java目录。回到node配置,选择刚才配置的凭据:root(connect to slave)2、配置node主机的java环境。

2024-02-19 21:14:55 1821

转载 通过冗余字段、中间表提升数据库查询性能

在这种情况下,可以在表中添加一个冗余字段来存储已经计算好的聚合结果或计算结果,以便查询时直接使用该字段的值,避免重新计算。在这种情况下,可以在订单表中添加冗余字段,将商品名称和单价存储在订单表中,以便每次查询时直接使用冗余字段的值,提高查询性能。在不使用冗余字段的情况下,需要在查询订单的时候,对该订单包含的所有商品进行遍历,累加总件数和总价格。这样,当查询订单时,就可以直接从 order 表中读取 total_quantity 和 total_price 字段的值,而无需再计算,从而提升了查询性能。

2024-02-05 14:42:58 505

原创 离线环境怎么下载python依赖包

注意,这里是将./script 里的python模块自动扫描并写入到requirements.txt中。2、根据requirements.txt文件的记录信息下载这些模块到packages文件夹中。4、依据requirements.txt中记录的信息从packages文件夹中查找并安装模块。以上的离线安装方式强烈不推荐!耗时久,并且依赖包的先后顺序无法控制,只能人为去查。注意:有些依赖包是有先后顺序的,比如moudleA安装后才能安装moduleB。也可以跟上具体的版本信息,以“==”连接。

2024-02-05 14:20:47 1864

原创 常见的数据报表查询卡顿问题的原因分析,以及解决措施

数据报表查询、导出时,经常发生耗时长,甚至超时、前端页面崩溃的问题。

2024-02-05 14:03:26 1337

原创 jdk目录里无jre,如何自动添加

jre使用于一般用户需要运行java环境,但如果涉及到开发调试,jre功能可能不能满足,因此需要使用功能更全面的jdk。在新版本的jdk里,已经不默认安装jre了,用户若有需要,需要自己配置。

2024-02-05 13:15:01 1251

原创 Jmeter命令行执行脚本

【代码】Jmeter命令行执行脚本。

2024-02-05 11:29:12 166

原创 python二维数组创建赋值问题:更改单个值却更改了所有项的值

原因:python的二位数据创建方式就是这样,官方文档中有描述What has happened is that [[]] is a one-element list containing an empty list,运行结果:每次赋值都更改了所有项。

2023-12-06 16:12:49 823

原创 接口偶然返回404

2.服务器部署到两台机器上A, B,我们称其为两个节点。负载均衡策略可能是ABAB轮换处理,这个时候如果A挂掉了,那么请求打到A的时候,就会404,但再次请求,又打到了B,就能正常返回。开发B调用接口的时候,Ngix就从nacos上去找,因此开发B就可能把请求发到了开发A的本机服务。(但一般不会这样,因为命名空间不同)开发A调试的时候会在本地启动一个服务,然后把本地的服务注册到nacos上。

2023-11-30 16:04:21 705

原创 python进阶1:魔术方法

Python常用魔法方法

2022-09-20 15:47:02 482

原创 Redis

Redis(非关系型数据库) is a database in memory, so it’s fast to write and read.

2022-09-06 17:29:18 374

原创 jwt_token及session及对称加密和非对称加密

Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。起源说起JWT,我们应该来谈一谈基于token的认证和传统的session认证的区别。

2022-09-06 17:21:52 875

原创 Python直接赋值&深浅拷贝

在写接口自动化的时候,在setup_class里初始化了一个dic1,在test case1里将dic1赋值给dic2,随后对dic2进行修改。然后在test case2里使用dic1时,发现dic1也被修改了,一番查找之下才发现是自己没有搞清楚直接赋值和深浅拷贝的原理。因此,直接赋值后的变量指向同一个子对象地址,无论是原变量还是赋值变量改变其值后,两个变量的值均改变;浅拷贝后,原对象的修改会对拷贝后对象生效,但拷贝后对象不对原对象生效;深拷贝则是两个完全独立的变量,两者互不影响。

2022-09-06 17:13:34 260

原创 python常用修饰器

1. @staticmethod不需要实例化即可使用class的属性,方法#!/usr/bin/python# -*- coding: UTF-8 -*- class A(object): bar = 1 def func1(self): print ('foo') @classmethod def func2(cls): print ('func2') print (cls.bar) cls()

2022-09-06 16:56:20 993

转载 Linux目录结构

一、查看文件和目录:1---查看当前所在的路径:pwd /root:表示是在根目录下的root目录里面(“/”表示根目录)2---命令格式:命令 -选项 -参数(目录)3---查看当前路径下的文件:ls -d:只看当前目录的信息 -l:看详细信息 -a:显示所有 任何一个文件前面加上“.”,表示隐藏文件。 -h:显示文件大小二、路径的切换1、路径的切换:cd cd -:返回之前的目录

2022-04-06 09:58:12 228

原创 factory-boy工厂模式

Factories declare a set of attributes used to instantiate a Python object. The class of the object must be defined in the model field of a class Meta attribute.官方文档地址: https://factoryboy.readthedocs.io/en/stable/

2022-03-23 18:21:43 341

原创 Chrome安装证书后,fiddler打开后,网页无法访问

问题:从fiddler中导出证书,并导入Chrome中后,在fiddler打开的情况下,Chrome网页无法访问解决办法:Tools-option-HTTPS中,点击Actions中的 Trust Root Certificate

2021-11-11 14:34:40 506

转载 request body json格式错误_Python requests.post方法中data与json参数区别

引用地址:Python requests.post方法中data与json参数区别​www.cnblogs.com在通过requests.post()进行POST请求时,传入报文的参数有两个,一个是data,一个是json。data与json既可以是str类型,也可以是dict类型。区别:1、不管json是str还是dict,如果不指定headers中的content-type,默认为application/json2、data为dict时,如果不指定content-type,默认为applica

2021-10-28 11:20:44 1050

原创 Jmter实战(一)结合函数助手、csv、beanshell解决参数传递问题

1、使用函数助手传参含有变量或函数的表达式,使用__enval比如在测试计划下面定义了一个名为data的变量,data里面又含有其他变量;随后需要在子线程组下的接口中调用,就可以使用KaTeX parse error: Expected group after '_' at position 2: {_̲_eval({data})}。1.22、使用csv文件提取参数三、...

2021-10-23 14:32:29 545

原创 python requests处理post的三种参数格式

HTTP post请求中,body有三种数据格式,处理方式如下:1、application/jsonimport requests,json url = 'http://www.test.com/login'data = {'user':'Tom','password':'123456'}jsondata=json.dumps(data)r =requests.post(url,jsondata)print(r)print(r.text)print(r.content)2、appli

2021-10-23 14:14:42 5793

python写的测试工具

python写的测试工具

2025-03-18

空空如也

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

TA关注的人

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