自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

摘 月

静夜,微风细卷,清香摇曳。

  • 博客(274)
  • 资源 (5)
  • 收藏
  • 关注

原创 Docker搭建Jenkins

密码的位置网页上已经列出来了,因为我们创建容器的时候设置了数据卷,所以现在很方便,直接去宿主机的 /root/data/jenkins_home/secrets/initialAdminPassword 位置查看初始化密码。jenkins/jenkins:最新版本 jenkins 镜像,JDK版本是最新版,用node模式也许会有问题。接下来会让我们选择需要的插件,第一次使用,点击【安装推荐的插件】即可。在设置中,找到 Password ,设置新密码,保存即可。设置完成后,点击【保存并完成】按钮进入首页。

2025-10-16 01:18:31 495

原创 k8s集群环境下Jenkins环境性能测试项目实战

在作为节点的 Windows 电脑上(即 Windows 的 JMeter 主机上),根据上面的提示,找到 Run from agent command line: (Windows) 这里的下载: http://121.4.20.49:8088/jnlpJars/agent.jar ,存放到任意目录。安装我们提供的邮件插件,高级设置中,找到部署插件,选择文件这里选择下载好的 email-ext.hpi 插件,然后点击“部署”按钮即可,最后重启 Jenkins 容器。使用jenkins。

2025-10-15 23:16:47 118

原创 k8s集群环境下Jmeter分布式性能项目实战

依次点击菜单栏上的工具–> Generate HTML report ,在弹出来的窗口中,选择 jtl 报告文件、选择 jmeter.properties 属性文件、选择输出目录,最后点击 Generate report 按钮即可。(4)启动JMeter服务(一般从机启动,如果控制机也需要参与压测,则需要启动 jmeter-server 服务,否则可以不启动。步骤1:配置主机和从机,并启动从机的jmeter-server(启动从机的jmeter分布式服务)。其他的JMeter都是从机,也叫压力机。

2025-10-15 00:41:51 159

原创 k8s集群环境下微服务项目性能实战(多接口)

压测过程中,线程数为20时,刚开始所有请求都正常,后来(列出基本信息+修改基本信息)接口出现大面积异常。上面的问题已经修复,目前项目出现了新的问题,后台日志有大量的异常出现,但是JMeter没有异常。第一步:让200个账号登录都登录一次,把返回的token记录下来(即存到一个token.txt文档中)调整到450、500、600并发,90%响应时间明显>3s,TPS变小。部署文件 yaml中,限制了最大mem是400M,显然不合理。查看资源、数据库监控,打开日志,发现并无异常。已经改好,并重启pod。

2025-10-13 00:31:10 56

原创 k8s集群环境下微服务项目性能实战(单接口)

300并发,CPU飙升到85%,查看数据库监控,发现mysql连接数设置过小。稳定性测试、压力测试、容量测试、基准测试、回顾测试。操作流程:使用正确的账号密码完成登录操作。解决:修改mysql最大连接数为1000。总之:尽可能保证不是测试端的性能问题。登录参数化:需要开发提供一批测试账号。并发数800,明显出现性能瓶颈。软件环境:JMeter5.5。系统环境:Centos7.9。负载测试—>评估、摸底。操作系统:win11。硬件配置:6H16G。修改后查看数据库监控。

2025-10-11 00:00:13 148

原创 微服务项目(k8s集群)部署

安装kubemnetes的时候,需要安装kubelet, kubeadm等包,但k8s官网给的yum源是 packages.cloud.google.com,国内访问不了,因此我们可以使用阿里云的yum仓库镜像。5、Scheduler再次检查数据库变化,发现尚未被分配到具体执行节点(node)的Pod,然后根据一组相关规则将pod分配到可以运行它们的节点上,并更新数据库,记录pod分配情况。安装Docker是必须的,有关Docker的安装,我们再其他教程中已经介绍过,这里不再赘述。并且都分别设置固定IP。

2025-10-03 20:58:52 90

原创 微服务项目(k8s集群)性能监控搭建

Node Exporter:是用来收集Linux系统基本健康状况和性能指标的小工具。CPU的使用率、内存的情况、磁盘空间、网络统计等等。(类似于家庭健康检测仪,可以采集家庭成员的体温、血压、心率等基本的生命特征的)。端口:31672MySQLExporter:是用来收集Mysq1数据库的性能指标和运行状态的。比如查询速度、连接数、缓存命中率等。(如果数据库是一个图书馆的话,那么它就是图书管理员,它记录图书的借还情况、到访人数、书架利用率等)。端口:30304。

2025-09-28 00:23:21 84

原创 微服务k8s集群架构

项目系统架构k8s==Kubernetes,容器的编排工具(管理容器)。谷歌开发开源的(CNCF)。智能停车场=k8s,车子=容器之前使用的docker-compose只能应用在单机上。docker-compose xxx.yaml # 容器编排工具node和pod的关系:node=====>卡车pod(1)集装箱=====>容器相关(N)N>=1(物品)pod 【node1 容器 mysql ===== exporter】

2025-09-26 23:43:18 186

原创 性能监控之容器化部署

【代码】性能监控之容器化部署。

2025-09-22 23:32:19 76

原创 pipeline进阶之groovy语法

在 Groovy 中,类型是弱化的,所有的类型都可以动态推断,但是 Groovy 仍然是强类型的语言,类型不匹配仍然会报错;写脚本就会遇到重复的情况,就会封装,如果我们写的函数还OK,那么可以封装到一个库文件中,然后其他库引用即可。在 Java 中,变量是必须指定类型的,但是在 Groovy 中,所有的变量类型都可以用 def 去指定,Groovy中的类声明了该类定义的对象的状态(数据)和行为。在Groovy中,如在任何其他面向对象语言中一样,存在类和对象的概念以表示编程语言的对象定向性。

2025-09-22 00:31:26 119

原创 容器化部署之Jenkins分布式节点、pipeline10

pipeline的出现代表企业人员可以更自由的通过代码来实现不同的工作流程。Stage:环节,表示一组操作,通常用来逻辑划分。分为声明式语法和脚本式语法,一般使用脚本式语法。Node:节点(某台机器),执行任务的具体环境。jenkins添加gitee,ssh方式连接。执行shell(自动构建镜像并推送)脚本语法:shell+groovy。jenkins添加流水线脚本。

2025-09-17 01:06:50 369

原创 容器化部署番外篇之Nexus3搭建私有仓库09

私有:docker-registry Nexus3。公有:dockerhub 阿里云等。需要修改密码:admin/密码。3)推送镜像到镜像仓库。访问:IP:8088。1)创建私有镜像仓库。

2025-09-16 23:40:04 174

原创 容器化部署之dockercompose08

日常工作中,常常1个项目会依赖多个容器工作,比如web后端nginx前端,数据库等。我们可以通过一个单独的配置文件来定义一组关联容器的启动过程,一个命令就可以把相关的容器正确启动起来。使用YAML格式定义一组容器为一个项目,通过docker-compose命令实现一键管理容器组合。Rancher是一个开源的企业级容器管理平台(1.6),常用功能有容器的编排、调度、健康检查等。这个作用类似dockerfile,不过一个是定义镜像,一个是定义一组容器的启动过程。3)添加数据库容器前操作数据库配置文件和数据。

2025-09-16 23:27:53 331

原创 容器化部署之dockerfile07

所有镜像的根镜像,相当于object类。dockerfile文件。特殊的镜像scratch。常用于Go语言开发应用。

2025-09-16 22:57:59 178

原创 容器化部署番外篇之docker网络通信06

None模式:使用none模式,Docker 容器拥有自己的 Network Namespace,但是并不为Docker 容器进行任何网络配置。Host模式:容器和宿主机共用一个 Network,使用主机的IP:PORT就可以访问容器,但安全性不高,用得少。Container模式:这个模式指定新创建的容器和已经存在的一个容器共享一个 Network。这种模式下,新加入的容器不能独立开放端口,只能使用已有容器开放的端口。Bridge模式:容器的默认网关,默认新建容器的网络模式。

2025-09-16 22:30:54 293

原创 容器化部署项目05

镜像你可以把它看成Python中的类,而容器可以看做是类的实例化对象。RESTAPI实现了client和server间的交互协议。CLI实现容器和镜像的管理,用户通过命令行对其操作。一个类可以有多个对象,同理一个镜像可以有多个容器。容器:运行中的进程,依赖镜像运行,镜像的具现化。镜像:容器的模板,包括容器运行时所需的数据。docker引擎是一个c/s结构的应用。Server是一个常驻进程。

2025-09-16 22:17:17 302

原创 linux环境部署uwsgi+nginx04

Django所提供的是一个开发服务器,这个开发服务器,没有经过安全测试,而且使用的是Python自带的simple HTTPServer创建的,在安全性和效率上都是不行的。把nginx.conf里的server配置复制到新创建的/etc/nginx/conf.d/autop.conf文件,并添加静态文件路径。是一个Web服务器其中的HTTP服务器功能和uWSGI功能很类似,但是Nginx还可以用作更多用途,比如最常用的反向代理功能。它是一个二进制协议,可以携带任何类型的数据。修改nginx配置的用户。

2025-09-16 01:34:19 672

原创 测试平台实战03

数据对象-----python数据类型-----json。数据流-----python数据类型-----数据对象。1)定义:帮助开发restful风格的增删改查接口。测试计划(批量运行测试用例,生成测试报告)多对多:ManyToManyFiled。2)mysql数据库(版本5.7)配置。5)函数视图装饰器:api_view。8)在线API生成器 swagger。10)嵌套字段和choice字段展示。定义:按照指定的格式返回响应数据。9)配置前端文件访问路径。4)drf请求与响应。2)用例执行流程设计。

2025-09-15 00:47:50 327

原创 平台开发前戏httprunner介绍02

1)HttpRunner是一款面向 HTTP(S)协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本。即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。底层:requests、pytest支持以YAML或JSON 格式定义测试用例支持响应验证支持初始化清除机制支持套件级别的用例管理支持Pytest命令(hrun底层封装的pytest) h3新特性支持allure生成测试报告 h3新特性支持性能测试(底层Locust)

2025-09-09 00:49:00 406

原创 系统开发流程01

那么浏览器访问的时候可以不带(会自动为你补全)但是请求工具,比如代码request必须带(不会自动补全)

2025-09-08 01:09:06 703

原创 JDK安装(存在多版本)

2、配置环境变量,有两个不同JDK版本,JAVA_HOME变量引用JDK17版本。环境存在多个版本JDK,使用update-alternatives命令管理。文件通过远程连接工具拖到/usr/java目录下并解压,修改目录名称。1、在/usr/目录下创建java目录。1、下载安装,直接下一步下一步即可。4、验证JDK有效性。

2024-12-15 21:06:47 872

原创 综合项目实战--jenkins流水线

软件生产环节,如:需求调研、需求设计、概要设计、详细设计、编码、单元测试、集成测试、系统测试、用户验收测试、交付等,这些流程就组成一条完整的流水线。脚本式流水线(pipeline)的出现代表企业人员可以更自由的通过代码来实现不同的工作流程。

2024-07-02 01:27:25 448

原创 综合项目实战--jenkins节点模式

DevOps是一种方法论,是一系列可以帮助开发者和运维人员在实现各自目标的前提下,向自己的客户或用户交付最大化价值及最高质量成果的基本原则和实践,能让。5)jenkins配置webhook,下载插件Generic Webhook Trigger。java8/java11 2.164

2024-06-26 00:20:29 418

原创 Web UI自动化测试--PO模式

PO(Page Object Model)页面对象模型,是自动化测试项目开发实践的最佳设计模式之一,相同的操作(但可能是不同的数据)带来的不同的结果可以封装成不同的方法。测试用例就是组合了1个或多个页面的方法,操作对应的元素,完成的测试。换句话来说,模块下的页面,页面中元素许多动作形成业务。业务层:上面2层的组合,并联合到一起形成某个业务动作,在页面中对若干元素操作后所实现的功能。(页面类的方法,也可以是多个页面的组台)操作层:对页面可见元素的操作。表现层:页面中可见的元素,都属于表现层。

2024-05-08 23:46:51 363

原创 Web UI自动化测试--selenium其他使用方法

通常来说,有2个原因你需要使用Grid。一是在多种浏览器,多种版本的浏览器,不同操作系统里的浏览器里执行你的测试,二是缩短完成测试的时间。user_data_dir的获取可以通过chrome://version得到,注意去掉尾部的default。对于select_by_visible_text的内容,注意不要把空格复制进去。本质上也可以用点击来完成,但selenium提供了API来操作,操作更加方便。select元素操作。

2024-04-28 01:21:21 552 2

原创 Kubernetes(k8s)架构原理

比如在服务器上部署一个博客应用服务,但是太过受欢迎,访问量太大,应用服务经常会挂,使用自动重启工具,并且将应用服务部署在了好几个服务器上,总算抗住了。后来又上线了商城应用服务和语言应用服务,随着应用服务变多,需求也千奇百怪,有的应用服务不希望被外网访问,有的应用服务要求内存大于多少g才能跑,所以每次都要登录到各个服务器上执行手动操作更新,不仅容易出错,还浪费时间,那么问题来了,有没有办法能解决这个问题?当然有,就是在服务器和应用服务之间加一个中间层,这次我们加的中间层叫kubernetes。

2024-03-31 19:17:32 1772 2

原创 Web UI自动化测试--元素操作

什么是web ui自动化测试1、通过代码来模拟人的手工操作,执行测试内容2、自动化是为了代替重复的手工操作,提高测试效率ui自动化的价值:1、回归速度的对比,以前进行全量回归测试需要x天,现在有没有减少2、负责功能测试的同事,是不是有更多的时间测试新需求了3、自动化测试不是为了发现bug,而是为手工测试节省回归时间ui自动化的原理(selenium与webdriver):selenium是一个用于web测试的工具,测试运行在浏览器当中,就像真的用户在操作浏览器一样,支持所有的主流浏览器;web

2024-03-17 15:53:30 454

原创 接口测试实战--gitlab容器化部署

2、修改/srv/gitlab/data/gitlab-rails/etc/gitlab.yml,找到关键字"Web server settings",将host的值改成映射的外部主机ip地址和端口,这里会显示在gitlab克隆地址。svn是集中式版本控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑,所有首先要从中央服务器下载最新的版本,然后开发,开发完后需要把自己开发的代码提交给中央服务器。从代码的私有性上来看,GitLab 是一个更好的选择;

2024-03-14 00:06:54 360

原创 接口测试实战--使用docker方案去部署jenkins并搭建接口自动化项目

下载gitlab、allure插件,下载完成重启jenkins生效(页面点击重启或者输入docker ps -a获取容器id,再输入输入docker restart 容器id重启jenkins容器)5)手动把项目代码直接通过xftp直接传递到/var/jenkins_node/workspace/autotest(后续采用gitlab方案)进入 Manage Jenkins----->Manage Plugin----->Advanced最下面有 Update Site 设置为。

2024-03-12 01:19:40 373

原创 接口测试实战--mock测试、日志模块

所以,当我们做接口测试的时候,如果后端某些接口还不成熟、所依赖的接口不稳定或者所依赖的接口为第三方接口、构造依赖的接口数据太复杂等问题时,我们可以用mock的方式先虚拟这些接口返回来代替,提高工作效率。这样用户在线等待的时间太长,给用户一种卡死了的感觉(就是系统迁移中,点击了迁移,界面就不动了,但是程序还在执行,卡死了的感觉)。在前后端分离项目中,当后端工程师还没有完成接口开发的时候,前端开发工程师利用Mock技术,自己用mock技术先调用一个虚拟的接口,模拟接口返回的数据,来完成前端页面的开发。

2024-02-27 00:53:37 332

原创 接口测试实战--读取yaml用例

基本数据类型:字符串、整型、列表、null(可使用~表示)、布尔型、时间。4)变量的使用:一个数据后面被使用了很多次,一般定义一个变量去调用的。handle_yaml.py:读取yaml测试用例。缩进的空格数目不重要,只要相同层级的元素左对齐。handle_path.py:获取各种路径。缩进时不允许用tab键,只能使用空格。扩展:yaml文件里引用yaml文件。login.py:业务层----登录。test_login.py:测试脚本。3)yaml单引号与双引号的区别。baseApi.py:基类。

2024-02-25 23:19:53 197

原创 接口测试实战--Pytest测试框架

pytest是python第三方单元测试框架。完美兼容python自带unittest框架,支持丰富的插件。环境搭建pip install pytest - html # 查看是否安装成功 pip show pytest# @pytest.fixture(scope='module') # 装饰器,声明下面的函数是setup函数# scope='function' 默认级别,每个方法或函数都跑一次# scope='class' 每个类执行一次# scope='module' 每个模块执行一次。

2024-02-25 19:15:34 245

原创 接口测试实战--自动化测试流程

不差钱的,直接使用比较成熟的第三方;代码层级框架开发是对中小型创业型公司,既要培养人才,又要节省成本,还有就是个人自身能力培养,扩展性强,不过每个人编程能力和风格不一样,要着重代码的规范;请求头有User-Agent(客户端相关信息)、refer(告诉服务器请求是哪个页面发出来的,防盗链)、X-Requested-With(告诉服务器是一个ajax请求)、cookie、content-type(消息体数据类型)等;RSA加密:非对称加密,公钥加密/验签,私钥解密/签名,加密速度慢,安全。

2024-02-24 22:54:33 409

原创 Linux(Ubuntu)环境下安装卸载Python3(避免踩坑)

注:windows下,直接在C:\Users\XXX\AppData\Roaming\pip目录中找到一个pip目录(没有就新建),找到文件pip.ini(没有就新建)进入/usr/local/目录,下载Python3,这里我下载的是python 3.8.10,如果要下载其他版本改下链接中的版本号,需与官网版本号对应。配置下安装目录,安装到之前创建的目录/usr/local/python3,目的是下次想卸载python直接卸载该目录下的即可。pip版本需要和python版本对应,升级下最新版本解决。

2024-02-08 00:52:05 19597 5

原创 paramiko模块使用

连接linux,返回执行结果。上传下载到linux。

2024-02-03 23:52:52 193

原创 多线程与socket编程

tcp(语音聊天、视频聊天、线下缓存高强电影、qq远程控制、发邮件)死锁:A线程操作占用资源1没有释放,B线程再来操作资源1,造成死锁。发生在发送端:发送间隔短,数据短,由于优化机制就合并在一起发送了;发生在接收端:接收不及时,所以数据就在接收方的缓存端黏在一起了。粘包的本质:tcp协议的传输是流式传输,数据与数据之间没有边界。接收端先接受四字节,知道数据的长度,再按照长度接收数据。发送端先发送四字节数据长度,再按照长度发送数据。udp(在线播放视频、qq发消息、微信消息)2、tcp、udp特点。

2024-02-03 23:48:08 234

原创 编码处理与装饰器

数据在内存中全部是以Unicode编码的,但是当你的数据用于网络传输或者存储到硬盘,必须以非Unicode(utf8,gbk)可以使用chardet库,获取编码类型,一般爬虫使用requests库结合chardet可以识别网页编码类型。函数名可以被复制给其他变量,可以当做参数传递,可以作为返回值(非常重要!闭包:只发生在嵌套函数,内部函数对外部函数的非全局变量的引用(开放封闭原则)先了解几个概念:位(bit)、字节(byte)、字符、字符集、编码、解码。编码:密码本,二进制与文字的对应关系。

2024-02-03 22:10:31 157

原创 pytest框架

tips:选择pytest执行方式 settings->Tools->python integrated tools,选择default test runner。session级别,setup函数的代码是在conftest.py里,项目目录的所有文件一共执行一次。可以让测试数据参数化,把测试数据单独管理,类似ddt数据驱动作用,方便代码和测试数据分离。注意:前面./report是报告和数据的父目录,./report/report是报告目录。声明上面代码是setup用法,下面的代码是teardown的用法。

2024-01-12 21:47:51 437

原创 python之异常与日志

日志级别(从低到高):debug info warning error critical。关键字:try except else finally raise(手动抛异常)所有异常都是exception的子类或者子类的子类。使用读取配置文件模块。

2024-01-12 20:41:30 199

原创 python之面向对象

继承执行顺序:调用多个父类的同名方法时,按继承顺序进行调用(mro)一般来说,一个类可以生成任意个实例,单例模式只生成一个实例。私有方法、属性:前面加双下划线(外部不能调用,只能内部调用)判断方法或函数,可以用type(),也可以用inspect。父类对子类约束:抽象类,子类中必须实现和父类同名的方法。继承:完全继承,部分继承,父类方法扩展。类方法:@classmethod。所有的类都是object的子类。调用父类同名方法:super()3.实例方法、类方法、静态方法。多继承,一个类可以有多个父类。

2024-01-11 01:32:11 320

HTTP参考资料-pdf版

HTTP参考资料

2022-08-23

Docker-相关文件

docker-compose linux安装包 Dockerfile文件配置 docker-compose.yml文件配置 Java Web项源代码 Java Web项目的war包

2022-05-07

docker-compose部署python项目

Django项目 nginx配置文件 mysql配置文件 docker-compose配置文件 Dockerfile配置文件 python依赖包配置文件

2022-05-07

Jmeter性能测试-jmeter脚本及分布式部署

1)性能测试原理 2)jmeter脚本及分布式部署

2022-04-11

Jmeter性能测试-测试报告

1)简历编写 2)测试报告

2022-04-11

空空如也

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

TA关注的人

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