自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 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 454

原创 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 562

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

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

2024-02-19 22:04:01 591

原创 token_session_jwt

我们知道,http协议本身是一种无状态的协议,而这就意味着如果用户向我们的应用提供了用户名和密码来进行用户认证,那么下一次请求时,用户还要再一次进行用户认证才行,因为根据http协议,我们并不能知道是哪个用户发出的请求,所以为了让我们的应用能识别是哪个用户发出的请求,我们只能在服务器存储一份用户登录的信息,这份登录信息会在响应时传递给浏览器,告诉其保存为cookie,以便下次请求时发送给我们的应用,这样我们的应用就能识别请求来自哪个用户了,这就是传统的基于session认证。载荷就是存放有效信息的地方。

2024-02-19 21:56:09 820

原创 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 298

原创 配置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 250

原创 忘记管理员密码

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

2024-02-19 21:38:21 169

原创 163邮箱发邮件

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

2024-02-19 21:36:48 347

原创 创建job

因为我配置的Credentials是ssh登录的方式,所以URL也要选择ssh方式的:[email protected]:xx/xx/xx.git。

2024-02-19 21:30:00 105

原创 3、安装插件

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

2024-02-19 21:24:40 339 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 586

原创 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 592

原创 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 608

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

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

2024-02-05 14:42:58 51

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

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

2024-02-05 14:20:47 565

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

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

2024-02-05 14:03:26 337

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

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

2024-02-05 13:15:01 192

原创 Jmeter命令行执行脚本

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

2024-02-05 11:29:12 71

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

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

2023-12-06 16:12:49 661

原创 接口偶然返回404

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

2023-11-30 16:04:21 386

原创 python进阶1:魔术方法

Python常用魔法方法

2022-09-20 15:47:02 411 1

原创 Redis

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

2022-09-06 17:29:18 296

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

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

2022-09-06 17:21:52 675

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

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

2022-09-06 17:13:34 209

原创 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 903

转载 Linux目录结构

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

2022-04-06 09:58:12 167

原创 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 259

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

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

2021-11-11 14:34:40 352

转载 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 758

原创 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 427

原创 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 3073

原创 HTTP协议详解

1、概述1.1 Http协议简介超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。它是一个无状态的协议,即客户端第二次向服务器访问同一个资源时,服务器无法识别出这是第几次访问。这样的好处是简化了服务器的设计,使其能够更好地支持大并发量的http访问。1.2 Http协议通信过程OSI七层模型和TCP/IP五层模型:Http分层解析:(1)客户端通过浏览器输入域

2021-10-23 13:54:20 1126

原创 linux下常用命令

查找find /home/centos8 -name test在指定目录下查找名为test的文件whereis qq只能查找应用程序查看系统架构、内存、进程ps -aux | grep bash会显示所有的进程信息,以及标记含有bash的进程free 查看物理内存和交换内存vmstat 内存相关端口netstate -tunlp查看所有端口占用情况netstate -tunlp grep|8080查看8080端口的占用情况文件编辑vim filename 编辑.

2021-10-13 15:33:03 216

原创 Pytest中多个class设置全局属性时的时间顺序

问题描述我在testcase文件夹下分别建立了test_1.py test_2.py test_3.py三个case,每个case中定义一个Test类,在类的全局属性里定义name=‘xxxx’+时间戳。时间戳自动获取。按照pytest的运行规则,会依次执行test_1.py test_2.py test_3.py三个case,按照我的理解,我三个Test类里的name属性中拼接的时间戳应该是不一样的,但执行结果发现,三个case中的时间戳完全一致。原因pytest的运行规则,是遍历文件夹下所

2021-09-30 15:13:27 281

原创 selenium点击lebel标签报错element click intercepted

我的元素标签是/html/body/div[1]/section/section/section/main/div/div[1]/div/div[1]/div/div[1]/label/span排查后,确定该元素可见且唯一,也使用了js的方法来执行:driver.execute_script(“arguments[0].click();”, ele)仍然报错于是根据错误信息,判断该元素的点击事件是被其他元素拦截,一般来说都是被该元素上方的某个元素遮挡了。我从前端来看,该按钮没有遮挡,/span上只

2021-09-27 11:35:04 600

原创 git查看本地和远程分支及关联情况

git branch 查看本地分支,前面有“*”号的代表当前分支git branch -vv 查看本地分支和远程分支关联情况git branch -a查看本地和远程所有分支git remote 查看远程仓库origin仓库下有dev和master两个分支...

2021-09-27 11:01:17 11942

原创 Shell脚本使用教程(九):函数

语法语法一函数名(){代码块return N}语法二function 函数名{代码块return N}

2021-09-24 13:49:23 102

原创 Shell脚本使用教程(八):流程控制及特殊变量

一、for语法语法一for var in value1 value2 ... do commandsdone直接赋值#!ur=usr/bin/bashfor var in 1 2 3 4 5 7 78 do echo $var sleep 1done赋值给一个命令for var2 in `seq 1 9` do echo $var2done

2021-09-24 11:03:14 64

原创 Shell脚本使用教程(七):if及使用实例

一、if语句单ifif [1 -eq 2]

2021-09-23 10:36:55 365

原创 Shell脚本使用教程(六):运算

一、shell中的运算数学比较运算二、文件比较与运算三、字符串比较运算test $USER == 'root';echo $?四、逻辑运算五、赋值运算

2021-09-18 13:43:30 196

空空如也

空空如也

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

TA关注的人

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