当前位置: 首页 > news >正文

基于SpringBoot的抽奖系统测试报告

 一、编写目的

本报告为抽奖系统测试报告,本项目可用于团体抽奖活动,包括了用户注册,用户登录,修改奖项以及抽奖等功能。 

二、项目背景

抽奖系统采用前后端分离的方法来实现,同时使用了数据库来存储相关的数据,同时将其部署到云服务器上。

前端主要有三个页面构成:登录页、注册页、抽奖页,以上模拟实现了较复杂的抽奖系统。其结合后端实现了以下的主要功能:登录、增加抽奖活动、进行抽奖活动以及退出登录等功能。
由于本项目没有设计普通用户注册功能,所以所有的抽奖用户又管理人员登录之后再对普通用户进行添加。
该在线抽奖系统可以实现个人用户简单的获奖记录,时间、标题、内容以及发布者等都可以进行详细地查看。 

三、相关模块

1.登录模块:登录时用Session获取用户表,在获取用户id来使后端将用户信息存储在Session中,在登录时通过获取用户对应的账号以及密码进行校验,如果都匹配则给予token令牌放行,登录通过,如果校验失败则需要重新输入登录信息,再次进行登录校验。

2.抽奖模块:用户通过请求发送数据到后端,后端获取抽奖人员id并通过RequestMapping注解来处理前端的请求并返回响应。

3奖项模块:通过后端实现了新增奖项,修改奖项,删除奖项等功能,在修改奖项采用了批量更新,使用的方法是Mybaits批量操作,提升了效率。

四、测试环境

硬件配置

内存:8.00 GB

软件配置

Windows11,Chrome浏览器(功能测试)

拦截统一:通过拦截器对http请求进行统一拦截并采用统一的响应数据格式。 

五、测试功能

该在线抽奖系统主要实现了以下几个功能:登录,活动中心设置,抽奖页面设置。

登录功能:

管理员登录页面实现了注册功能,由于该活动由管理员来进行,普通账户注册功能也是在管理员后台进行信息填写实现注册。登录成功后就会跳转到活动中心页面。在右上角有退出登录按键,但是在未登录情况下强制访问页面会提示用户未登录,强制返回到登录页。
活动中心页面:

活动中心页面分为三个模块:活动管理、奖品管理、人员管理

活动管理:

可以查看所有活动,包括已经结束以及正在进行中的活动,可以新建抽奖活动。

奖品管理:

可以在奖项列表页面查看奖品数量,在新建活动奖品页面添加奖品。

人员管理:

可以在人员列表页面查看人员信息,在人员注册页面填写信息注册参与活动的普通用户

抽奖页面设置:

在抽奖页面点击“开始”按钮就会开始抽奖,此时就可以看到人员名称正在翻滚,随后产生一个中奖结果。在所有的奖项进行完毕之后,后续的活动状态则会转变为已经完成,页面也会变成中奖名单以及分享结果链接,分享结果链接则是直接展现中奖页面

六、测试过程

功能测试:

测试用例如下图

 实际执行测试的部分操作步骤/截图

1.正常登录

2.用户注册测试

 3.跳转到注册页面进行注册

 4.登录成功进入活动中心页面

5.新建抽奖活动

圈选奖品

 圈选参与人员

创建活动

 创建成功

6.查看活动列表

 7.查看奖品列表

点击下一页,查看其他的奖品

 

8.创建奖品测试

上传图片

 创建奖品

 查看奖品列表

9.抽奖人员注册测试(普通用户注册测试)

填写信息

查看人员列表页

 10.抽奖活动模块测试

进入抽奖页面

完成抽奖,查看该奖品的中奖人员

点击下一步,测试下一个奖项的进行状态

 完成所有奖品的抽奖行为之后,查看中奖名单

点击分享链接,然后新建浏览器页面粘贴进行访问,查看中奖名单

 查看活动状态转换

自动化代码编写:

根据脑图进行测试用例的编写,可以按照每个页面一个测试类的方式来组织。

首先,需要单独创建一个公共属性类,以方便进行代码复用。

接下来,在各个测试类中进行测试用例的编写。为了便于运行以及修改,可以使用测试套件。此外,启动和现场截图是频繁进行复用的操作,因此可以单独创建一个类进行存储,并在需要的时候进行调用。

在编写测试用例时,需要注意添加隐式等待,以确保页面能够正确加载和显示。这样可以有效避免因页面未完全加载导致的测试失败情况。

总之,按照脑图的规划,可以将测试用例按照页面进行分组,结合测试套件和公共属性类,以及单独存储启动和现场截图的类,来进行测试用例的编写和组织。

1. 添加相关依赖pom.xml

<dependencies>
<!--        添加selenium依赖-->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>4.0.0</version>
        </dependency>
 
        <!--        保存屏幕截图需要用到的包-->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>
 
        <!--        添加junit5依赖-->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>5.8.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-suite</artifactId>
            <version>1.8.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

2. 新建包并在包下创建测试类以及公共类
以下是所建立的是common公共包和Tests测试包:

1公共类

创建驱动、保存现场截图
注意:在保存现场截图的时候命名是按时间来进行文件夹的划分,然后图片的名称要体现出测试类的类名,方便进行问题的追溯。
注意文件名的动态获取,注意时间格式的设置。

2登录页面测试 

 创建驱动,并打开页面
 测试页面是否正常打开
 测试正常登录:多参数测试
 测试用户注册:多参数测试

 注意测试的顺序,使用Order注解指定,否则可能会因为执行顺序不对导致测试失败

3奖项页测试

 测试奖项页是否可以正常打开

 测试奖品是否可以正确添加
 测试强制访问后台页面,顺便测试了“退出”按钮
 测试抽奖页是否可以正常打开
 测试抽奖页的开始按钮是否可以正常使用
 测试抽奖页的抽奖行为是否正常

4抽奖页测试

测试抽奖结果是否正确

测试抽奖结果分享链接能否正确访问

测试活动状态转换是否正确

性能测试: 

使用Jmeter进行简单性能测试:针对登录、查看活动列表、人员列表,奖品页面等功能进行简单的性能测试。

对项目功能进行性能测试

七、项目源码

   @Test@Order(1)void  LoginSuccess() throws InterruptedException {//打开登录界面EdgeOptions options = new EdgeOptions();options.addArguments("--remote-allow-origins=*");EdgeDriver driver = new EdgeDriver(options);driver.get("http://62.234.43.231:8539/login.html");//输入账号密码driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);driver.findElement(By.cssSelector("#username")).sendKeys("13721899916");driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);driver.findElement(By.cssSelector("#password")).sendKeys("dudududu");//提交按钮driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);driver.findElement(By.cssSelector("#submit")).click();//跳转到列表//获取urldriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);String cur_url = driver.getCurrentUrl();driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);Assertions.assertEquals("http://127.0.0.1:9090/blogin.html",cur_url);//如果url是测试通过driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);String cur_admin = driver.findElement(By.cssSelector("#username")).getText();Assertions.assertEquals("admin",cur_admin);//展示admin}@Testvoid BlogList(){EdgeOptions options = new EdgeOptions();options.addArguments("--remote-allow-origins=*");EdgeDriver driver = new EdgeDriver(options);driver.get("http://127.0.0.1:9090/activities-list.html");

相关文章:

基于SpringBoot的抽奖系统测试报告

一、编写目的 本报告为抽奖系统测试报告&#xff0c;本项目可用于团体抽奖活动&#xff0c;包括了用户注册&#xff0c;用户登录&#xff0c;修改奖项以及抽奖等功能。 二、项目背景 抽奖系统采用前后端分离的方法来实现&#xff0c;同时使用了数据库来存储相关的数据&…...

Go语言从零构建SQL数据库(9)-数据库优化器的双剑客

数据库优化器的双剑客&#xff1a;谓词下推与列裁剪 在数据库查询优化的世界里&#xff0c;有两位特别重要的"超级英雄"&#xff1a;谓词下推和列裁剪。这两种优化技术虽然简单&#xff0c;却能带来惊人的性能提升。今天&#xff0c;我们就来揭开它们的神秘面纱&…...

C++中什么是函数指针?

在C中&#xff0c;函数指针是一个指向函数的指针变量。通过函数指针&#xff0c;我们可以像使用函数一样调用它所指向的函数&#xff0c;常用于实现回调函数、函数指针数组等功能。 以下是一个简单的C代码示例&#xff0c;展示了函数指针的使用&#xff1a; cpp #include <…...

Python工具链UV整合环境管理

Python工具链UV整合环境管理 终极Python工具链UV&#xff1a;从依赖管理到项目开发的全维度解析一、引言&#xff1a;重新定义Python开发的大一统时代二、深度安装指南&#xff1a;多场景适配方案1. 官方独立安装器&#xff08;推荐方案&#xff09;2. 进阶安装方式3. 安装验证…...

RuoYi-v4.7.8 jar/war部署

准备条件 jdk-8u73-windows-x64.exe mysql5.7 apache-tomcat-9.0.60 apache-maven-3.8.1 RuoYi-v4.7.8.zip &#xff08;官网 RuoYi&#xff09; 登录gitee,选择标签要下载的版本好&#xff0c;点击克隆下载zip压缩文件 安装maven Apache Archive Distribution Directory…...

基于SpringBoot的小区停车位管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

张量并行优质博客

必读图解系列1 比较全面的相关文献总结博客&#xff0c;可以重点看一下其中的行列切分算子2 # 图解大模型训练之&#xff1a;张量模型并行(TP)&#xff0c;Megatron-LM ↩︎ # 大规模分布式 AI 模型训练系列——张量并行 ↩︎...

汽车诊断简介

历史 20世纪80年代&#xff0c;由于美国西海岸严重的雾霾问题&#xff0c;CARB&#xff08;加州空气资源委员会&#xff09;通过了一项法律&#xff0c;要求对机动车辆进行车载监测诊断。这推动了OBD-I的引入&#xff0c;并在1990年代被OBD II取代。与此同时&#xff0c;欧洲也…...

suricata之规则去重

一、环境和背景 1.1 环境 OS: Ubuntu 22.04.5 LTS IDE: vscode suricata: suricata 7.0.5 1.2 背景 在添加规则时&#xff0c;为了给规则分类&#xff0c;将不同类别的规则写入不同的文件。 在规则加载时两条不同的规则却被认为是重复的&#xff0c;因此记录一下去重逻辑。…...

接口在函数参数和对象类型中的应用

在 TypeScript 中&#xff0c;接口&#xff08;interface&#xff09;是一种强大的工具&#xff0c;用于定义和约束对象的结构。它不仅可以用于描述对象类型&#xff0c;还能够用于定义函数的参数和返回类型。接口可以提高代码的可读性、可维护性&#xff0c;并帮助捕捉潜在的错…...

Javascript:数组和函数

数组 创建数组 使用new创建 let arrnew array(数组大小); 直接赋值创建 let Arr2[];let Arr3[1,A,"HELLLO"]; 这里JS的数组里面的元素属性可以各不相同 演示代码 <script>let Arr1new Array(5);let Arr2[];let Arr3[1,A,"HELLLO"];console.…...

Vue Router

Vue Router:前端路由跳转的魔法 什么是Vue Router Vue Router是Vue官方的路由管理器,它允许我们在不重新加载页面的情况下更改浏览器中显示的内容,实现单页应用(SPA)的无缝导航体验。 📊 Vue Router工作流程图 #mermaid-svg-xNtkA0qYMjB0lvUt {font-family:"trebu…...

谷歌与微软的AI战争:搜索、云服务与生态布局

谷歌与微软的AI战争&#xff1a;搜索、云服务与生态布局 系统化学习人工智能网站&#xff08;收藏&#xff09;&#xff1a;https://www.captainbed.cn/flu 文章目录 谷歌与微软的AI战争&#xff1a;搜索、云服务与生态布局摘要引言技术路线对比1. AI基础设施&#xff1a;算力…...

robomaster机甲大师--电调电机

文章目录 C620电调ID设置速率 电调发送报文电调接收报文cubemx程序初始化发送接收 C620电调 ID设置 速率 1Mbps 电调发送报文 发送的数据为控制电机的输出电流&#xff0c;需要将can数据帧的ID设置为0x200 电调接收报文 机械角度&#xff1a;电机的0到360度映射到0到几千转…...

菜鸟之路day31一一MySQL之多表设计

菜鸟之路day31一一MySQL之多表设计 作者&#xff1a;blue 时间&#xff1a;2025.5.9 文章目录 菜鸟之路day31一一MySQL之多表设计0.概述一.多表设计1.1一对多1.2一对一1.3多对多 0.概述 内容学习自黑马程序员BV1m84y1w7Tb 一.多表设计 1.1一对多 一对多关系实现&#xff…...

害怕和别人发生冲突怎么办? --deepseek

害怕与他人发生冲突是一种常见的心理状态&#xff0c;可能源于对关系破裂、被否定或情绪失控的担忧。但这种恐惧长期存在会影响自我表达和人际关系。以下是分步骤的应对策略&#xff0c;帮助你逐步建立应对冲突的自信&#xff1a; 第一步&#xff1a;理解你的恐惧根源 自我提问…...

Go语言——kratos微服务框架使用

文章目录 一、安装依赖二、创建项目三、初始化项目四、使用git_bash命令终端运行命令五、创建自己的项目1、修改app.proto3、internal/service/app.go4、修改internal/service/service.go文件5、创建internal/biz/content.go文件6、修改internal/biz/biz.go文件7、创建internal…...

无人机飞控算法开发实战:从零到一构建企业级飞控系统

简介 无人机飞控算法是实现稳定飞行和精确控制的核心技术,涉及飞行动力学建模、传感器数据处理、状态估计和控制策略等多个环节。本实战指南将系统讲解四旋翼无人机飞控算法的开发流程,包括飞行动力学模型建立、传感器校准与数据融合、主流控制算法实现(PID、ADRC、EKF)以…...

MiniMind:3块钱成本 + 2小时!训练自己的0.02B的大模型。minimind源码解读、MOE架构

大家好&#xff0c;我是此林。 目录 1. 前言 2. minimind模型源码解读 1. MiniMind Config部分 1.1. 基础参数 1.2. MOE配置 2. MiniMind Model 部分 2.1. MiniMindForCausalLM: 用于语言建模任务 2.2. 主干模型 MiniMindModel 2.3. MiniMindBlock: 模型的基本构建块…...

每日算法刷题 Day3 5.11:leetcode数组2道题,用时1h(有点慢)

5.LC 零矩阵(中等) 面试题 01.08. 零矩阵 - 力扣&#xff08;LeetCode&#xff09; 思想: 法一: 利用两个集合分别储存要清0的行和列索引 另外两种原地优化空间的做法暂时不是目前刷题目标&#xff0c;故不考虑 代码 c: class Solution { public:void setZeroes(vector&l…...

POSIX信号量

目录 一、相关概念回顾 1.信号量 2.多线程使用资源的两种情况 3.P操作和V操作 二、CP && 基于环形队列的生产者消费者模型 1.环形队列的介绍 ​编辑 2.基于环形队列的生产者消费者模型的默认规则&#xff08;通过信号量实现规则的成立&#xff09; 3.相关的结论…...

前端Web开发HTML5+CSS3+移动web(基础-flex)

网页设计套路&#xff1a;从上到下&#xff0c;从整体到局部 &#xff11;&#xff1a;HTML定义&#xff1a; &#xff08;1&#xff09;超文本是点击可以页面来回切换的链接 &#xff08;2&#xff09;标记就是标签语言 &#xff12;&#xff1a;标签的语法 &#xff08;1&…...

Java 原生异步编程与Spring 异步编程 详解

简介 Java 异步编程是现代高性能应用开发的核心技术之一&#xff0c;它允许程序在执行耗时操作&#xff08;如网络请求、文件 IO&#xff09;时不必阻塞主线程&#xff0c;从而提高系统吞吐量和响应性。 异步 vs 同步 同步&#xff1a;任务按顺序执行&#xff0c;后续任务需…...

AUTOSAR图解==>AUTOSAR_TR_HWTestManagementIntegrationGuide

AUTOSAR硬件测试管理集成指南 启动和关闭阶段硬件测试管理的规范与集成 目录 文档概述 1.1 文档范围 1.2 局限性目标与动机 2.1 目标 2.2 动机 2.3 用例约束与假设缩略语与术语相关文档HTMSS AUTOSAR集成方法HTMSS功能描述AUTOSAR架构解决方案 8.1 HTMSS系统架构 8.2 HTMSS启动…...

Day22 Kaggle泰坦尼克号训练实战

​ 作业 自行学习参考如何使用kaggle平台&#xff0c;写下使用注意点&#xff0c;并对下述比赛提交代码 kaggle泰坦里克号人员生还预测 一、流程 思路概述 数据加载 &#xff1a;读取泰坦尼克号的训练集和测试集。数据预处理 &#xff1a;处理缺失值、对分类变量进行编码、…...

基于大核感知与非膨胀卷积的SPPF改进—融合UniRepLK的YOLOv8目标检测创新架构

在当前目标检测领域中&#xff0c;YOLO系列模型因其优异的速度-精度平衡能力而被广泛部署于工业界与科研场景。YOLOv8作为该系列的最新版本&#xff0c;在主干网络与特征金字塔结构上进行了多项优化&#xff0c;进一步提升了其实时性与鲁棒性。然而&#xff0c;其核心组件—SPP…...

[Linux]从零开始的STM32MP157 Busybox根文件系统构建

一、前言 在上一篇教程中&#xff0c;已经教了大家如何使用Buildroot构建根文件系统&#xff0c;并且在最后我们已经完整的构建了一个可以运行的根文件系统。但是&#xff0c;Buildroot的集成度太高了&#xff0c;不利于小白理解根文件系统&#xff0c;所以本次教程&#xff0c…...

C++ RAII机制

RAII&#xff08;Resource Acquisition Is Initialization&#xff09;是一种编程范式&#xff0c;核心思想是&#xff1a;资源的生命周期与对象绑定——对象创建时获取资源&#xff0c;对象销毁时自动释放资源。这种机制通过构造函数和析构函数的配对执行&#xff0c;确保资源…...

spring中的@Value注解详解

一、核心功能与作用 Value是Spring框架中用于动态注入属性值的注解&#xff0c;支持从配置文件、环境变量、SpEL表达式等来源注入数据&#xff0c;实现代码与配置的解耦。 注入类型覆盖广泛 基本类型&#xff1a;字符串、数值&#xff08;int/double&#xff09;、布尔值等。 …...

模型欠拟合是什么?

模型的欠拟合:全面解析 一、定义与核心概念 欠拟合(Underfitting)是指模型在训练数据、验证数据和测试数据上均表现不佳的现象。其本质是模型过于简单或学习能力不足,无法捕捉数据中的潜在规律和复杂关系,导致泛化能力差。例如,用线性模型拟合非线性数据时,模型无法描…...

IC ATE集成电路测试学习——电流测试的原理和方法

电流测试 我们可以通过电流来判断芯片的工作状态时&#xff0c;首先先了解下芯片的电流是如何产生的。 静态电流 理论上&#xff0c;CMOS结构的芯片静态时几乎不耗电 CMOS基本结构&#xff1a;Pmos Nmos 串联当逻辑电平稳定时&#xff1a; ➜ 要么Pmos导通&#xff0c;Nmo…...

Wordpress头像无法加载太慢问题解决方式

Wordpress头像无法加载太慢问题解决方式 1、找到我们当前使用的主题目录中找到functions.php文件在文件最后面添加以下代码 if ( ! function_exists( get_cravatar_url ) ) {/***替换Gravatar头像为Cravatar头像** param string $url** return string*/function get_cravatar…...

《大模型微调实战:Llama 3.0全参数优化指南》

全参数微调&#xff08;Full Parameter Fine-Tuning&#xff09;是推动大模型适应垂直领域任务的核心技术&#xff0c;尤其对于Llama 3.0这类千亿级参数模型而言&#xff0c;其性能优化与场景适配能力直接决定了实际应用价值。然而&#xff0c;全参数微调面临计算成本高、内存占…...

ActiveMQ 生产环境问题排查与调优指南(二)

五、调优策略与实践 5.1 JVM 调优 JVM 调优对于提升 ActiveMQ 性能至关重要&#xff0c;合理的 JVM 配置可以使 ActiveMQ 更高效地利用系统资源&#xff0c;减少性能瓶颈。 设置合理的堆内存大小是 JVM 调优的关键步骤。堆内存是 JVM 中用于存储对象实例的区域&#xff0c;其…...

AugmentCode 非常昂贵的新定价

AugmentCode 现在的价格比 Cursor 和 Windsurf 的总和还要贵。 AugmentCode 曾是我开发工作流程的常用工具。出乎意料的是,他们改变了定价结构,让开发者们震惊不已。 原来的30 美元月费已经增长为50 美元月费,这是一个67%的增长。 改变我看法的不仅仅是价格上涨,还有他…...

Unity 红点系统

首先明确一个&#xff0c;即红点系统的数据结构是一颗树&#xff0c;并且红点的数据结构的初始化需要放在游戏的初始化中&#xff0c;之后再是对应的红点UI侧的注册&#xff0c;对应的红点UI在销毁时需要注销对红点UI的显示回调注册&#xff0c;但是不销毁数据侧的红点注册 - …...

Python-UV多环境管理

Python-UV多环境管理 Python使用UV进行环境管理&#xff0c;系统了解UV的使用 文章目录 Python-UV多环境管理 [toc]1-学习要点2-核心知识点3-UV多环境管理4-venv和uv脚本对比1-venv环境管理2-uv环境管理3-venv对比uv 1-学习要点 1-熟悉【UV环境管理】2-熟悉【UV和Venv脚本区别…...

多空短线决策+飞云分仓操盘,两个副图指标组合操盘技术,短线更精准有效

如上图&#xff0c;两个副图指标&#xff0c;第一个【短线多空决策】&#xff0c;第二个副图指标【飞云分仓操盘】&#xff0c;指标组合使用&#xff0c;精准性和有效性更加有效。 如上图&#xff0c;两个指标组合使用&#xff0c;我们选择第二个副图指标出现红色和紫色区域的标…...

istio in action之应用弹性与容错机制

在分布式系统中&#xff0c;服务间的依赖关系就像一张错综复杂的网络&#xff0c;任何一个节点的抖动都可能引发连锁反应。这也是为什么我们需要强调弹性&#xff0c;因为在分布式系统中&#xff0c;服务之间通过网络进行通信&#xff0c;这本身就引入了无数个潜在的失败点。我…...

将PyQt5设计的程序打包成.exe文件

打包教程 因为打包的机制是会把当前的解释器的包也打包上&#xff0c;而我的环境经常会有一些较大的包&#xff0c;比如torch之类的。所以这里会创建一个单独的环境。 conda create -n image_process python3.8 激活环境 conda activate image_process 现在先安装我需要安装…...

Java原生结合MQTTX---完成心跳对话(附带源码)

简言&#xff1a;✨当Java遇上MQTT&#xff1a;打造会"隔空传话"的魔法程序✨ 导语&#xff1a;想不想让两个Java程序像哈利波特里的双面镜一样实时对话&#xff1f;今天我们将用MQTT协议EMQX&#xff0c;在Ubuntu上搭建一个魔法邮局&#xff0c;再亲手编写会传信的…...

redis数据结构-06(LRANGE、LINDEX、LSET、LREM)

列表操作&#xff1a;LRANGE、LINDEX、LSET、LREM Redis 列表不仅仅是简单的数组&#xff1b;它们是一种强大的数据结构&#xff0c;可以高效地操作有序数据。本课将深入探讨使用 Redis 列表的四个基本命令&#xff1a; LRANGE 、 LINDEX 、 LSET 和 LREM 。掌握这些命令将使您…...

4.4 os模块

os模块&#xff1a; chdir:修改工作路径 --- 文件所在位置的标识 getcwd():返回当前路径&#xff0c;如果修改了则显示修改后的路径 curdir:获取当前目录的表示形式 cpu_count():返回当前cpu的线程数 getppid(): 获取当前进程编号 getppid()&#xff1a;获取当前进程的父进…...

在 Windows 系统上选择与部署 DICOM 医学影像开发工具与库

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C++, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C++、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQL server,Oracle,mysql,postgresql等进行开发应用…...

MYSQL数据库集群高可用和数据监控平台(详细版)

项目说明 概述 该项目共分为2个子项目&#xff0c;由MYSQL集群高可用和数据监控平台两部分组成 MYSQL集群高可用属于云原生高级课数据库运维部分的知识 数据监控平台属于云原生拔高项目&#xff0c;旨在让学生增加知识面&#xff0c;提高项目实习经历&#xff0c;充实简历 …...

学习通刷课稳定版(美化面板+完全免费)

学习通刷 &#xff08;美化面板完全免费&#xff09; 安装教程方法一源码文件 方法二 提示结尾 安装教程 方法一 我们首先在浏览器打开脚本猫网站并获取该插件&#xff08;浏览器以Edge为例&#xff09; 脚本猫首页&#xff1a;https://scriptcat.org/zh-CN/ 第一步&#xff…...

python 实现sha加密

在Python中&#xff0c;SHA&#xff08;Secure Hash Algorithm&#xff09;是一种加密哈希函数&#xff0c;通常用于生成数据的哈希值。SHA算法是单向的&#xff0c;这意味着它只能用于加密&#xff08;生成哈希值&#xff09;&#xff0c;而不能用于解密。因此&#xff0c;SHA…...

Linux epoll 详解:概念、使用、数据结构、流程及应用

epoll是什么&#xff1f; epoll 是从 Linux 2.6 起&#xff0c;Linux内核提供的一种高性能I/O事件通知机制&#xff0c;用于解决传统 select 和 poll 在处理大量并发连接时遍历、最大数量限制、频繁拷贝数据等问题。epoll 可以用来监听多个文件描述符&#xff08;socket、管道…...

Kubernetes排错(十一):lsof命令实战场景

在Kubernetes生产环境中&#xff0c;lsof作为Linux系统的"透视眼"&#xff0c;是排查容器级疑难杂症的必备工具。本文将深入解析其在容器化场景下的高阶用法&#xff0c;助你快速定位隐藏问题。 一、基础环境准备 1. 容器内安装lsof # 临时进入容器安装&#xff0…...

Java基础语法之循环结构

循环结构 1.定义 控制一段代码重复执行多次 2.分类 2.1 for循环 2.1.1 定义 控制一段代码反复执行很多次。 2.1.2 for循环格式 for (初始化语句; 循环条件; 迭代语句) { 循环体语句(重复执行的代码); }示例 // 输出3次HelloWorld for (int i 0; i < 3; i) { System…...