蓝桥杯第十五界软件测试线下省赛题目分析及解决

news2024/11/17 13:54:49

PS 需要第十五界蓝桥杯被测系统或者功能测试模板、单元测试被测代码、自动化测试被测代码请加🐧:1940787338 备注:15界蓝桥杯省赛软件测试

题目1:功能测试

题目描述

​ 某物流公司的货运收费标准根据重量、距离和节假日三个因素来确定。如果运输地点在本省,那么收费标准如下:(1)
如果重量在

  • 0到50公斤之间(含50公斤),每公斤运费为8元;
  • 如果重量在51到100公斤之间(含100公斤),每公斤运费为12元;
  • 如果重量超过100公斤,每公斤运费为16元;
    此外,如果运输发生在节假日,每公斤运费会额外增加2元。

如果运输地点在外省,那么收费标准如下:

  • 如果重量在0到50公斤之间(含50公斤),每公斤运费为15元;
  • 如果重量在51到100公斤之间(含100公斤),每公斤运费为20元;
  • 如果重量超过 100公斤,每公斤运费为25元;
  • 此外,如果运输发生在节假日,每公斤的运费会额外增加5元。

解题步骤

​ 首先,我们分析题目,列出一下条件桩,可知条件有 C1 重量 C2 运输地点 C3 是不是发生在节假日

1、列出条件桩和条件项

在这里插入图片描述

​ 根据排列组合公式 我们可以得出有12条测试用例

2、列出动作桩和动作项
动作桩动作项
A1:每公斤运费8T/F
A2:每公斤运费12T/F
A3:每公斤运费16T/F
A4:每公斤额外增加2元T/F
A5:每公斤运费15元T/F
A6:每公斤运费20元T/F
A7:每公斤运费25元T/F
A8:每公斤运费额外增加5元T/F
3、写出判定表

在这里插入图片描述

4、根据判定表写出测试用例
编号重量(公斤)省份节假日预期结果
case11本省10元
case21本省8元
case31外省20元
case41外省15元
case551本省918元
case651本省612元
case751外省1275元
case851外省1020元
case9101本省1818元
case10101本省1616元
case11101外省2020元
case12101外省2525元

综合测试用例

【功能模块】
模块名称:运费模板
功能名称:【搜索】功能(红框标记出来的部分)
【功能截图】

在这里插入图片描述

判分规则

​ 本题满分16分(主要考察测试用例的综合设计思路,会从用例覆度编写规范两个方面进行判分。

  • 用例覆盖度:每覆盖1条用例得1分,最高得11分。
  • 编写规范:按照模板的说明进行规范填写,规范最高得5分。
  • 提交的用例数目不要超过11条,否则只对前11条用例进行判分。

【答案提交】
答案完成后,选手需把【省赛测试用例.xlsx】文件保存到【答案提交】文件夹中,等待和其他答案一起提交。

用例答案

用例编号一级功能二级功能前置条件用例标题操作步骤测试数据预期结果用例优先级
YFMB-SS-001运费模板搜索1. 已成功登录系统 2. 打开【运费模板】页面不输入【模块名称】(为空),进行搜索操作1. 输入正确的【模块名称】(为空); 2. 点击【搜索】;模块名称:(为空)查询全部数据
YFMB-SS-002运费模板搜索1. 已成功登录系统 2. 打开【运费模板】页面 3. 页面中有【模块名称】数据输入精确的【模块名称】(已存在),进行搜索1. 输入正确的【模块名称】; 2. 点击【搜索】;模块名称:包邮正确显示查找的数据
YFMB-SS-003运费模板搜索1. 已成功登录系统 2. 打开【运费模板】页面 3. 页面中有【模块名称】数据输入模糊的【模块名称】(一个或多个),进行搜索1. 输入正确的【模块名称】; 2. 点击【搜索】;模块名称:广州单正确显示查找的数据
YFMB-SS-004运费模板搜索1. 已成功登录系统 2. 打开【运费模板】页面 3. 页面中有【模块名称】数据输入含有特殊字符的【模块名称】(一个或多个),进行搜索1. 输入正确的【模块名称】; 2. 点击【搜索】;模块名称:#¥%……&正确显示查找的数据
YFMB-SS-005运费模板搜索1. 已成功登录系统 2. 打开【运费模板】页面输入不存在【模块名称】,进行搜索1. 输入正确的【模块名称】; 2. 点击【搜索】;模块名称:北京页面正确显示“暂无数据”
YFMB-SS-006运费模板搜索1. 已成功登录系统 2. 打开【运费模板】页面输入【模板名称】,进行清空1. 输入正确的【模块名称】; 2. 点击【清空】;模块名称:北京【模块名称】输入框内容被清空
YFMB-SS-007运费模板搜索1. 已成功登录系统 2. 打开【运费模板】页面输入【模板名称】,输入框的×清空1. 输入正确的【模块名称】; 2. 点击输入框内的【×】;模块名称:北京【模块名称】输入框内容被清空
YFMB-SS-008运费模板搜索1. 已成功登录系统 2. 打开【运费模板】页面 3. 页面中有【模块名称】数据输入【模板名称】,进行回车搜索1. 输入正确的【模块名称】; 2. 点击键盘【回车】;模块名称:包邮正确显示查找的数据
YFMB-SS-009运费模板搜索1. 已成功登录系统 2. 打开【运费模板】页面输入【模板名称】(十万个字),进行回车搜索1. 输入正确的【模块名称】(十万个字); 2. 点击键盘【回车】;模块名称:一二三四五…等十万个字提示:字符数超出限制
YFMB-SS-010运费模板搜索1. 已成功登录系统 2. 打开【运费模板】页面 3. 页面中有【模块名称】数据输入【模板名称】(含有空格),进行搜索1. 输入正确的【模块名称】(含有空格); 2. 点击键盘【回车】;模块名称:包 邮去除空格,然后进行搜索

题目2:缺陷报告

题目描述

​ 功能测试题目3(编写缺陷报告)(满分 40分)
​ 利用所学知识,请对被测系统中的如下2个页面进行测试,寻找其中预埋的缺陷,包括但不限于功能缺陷和易用性界面缺陷。并把发现的缺陷填写在指定的【省赛缺陷报告.xisx】文件中。

在这里插入图片描述

在这里插入图片描述

下面是16个Bug

缺陷编号功能名称缺陷描述操作步骤预期结果实际结果缺陷级别
YFMB-BUG-001运费模板运费模板页面,点击【清空】按钮没有反应1. 登录系统->进入运费模板页面 2. 输入【模板名称】 3. 点击【清空】清空【模板名称】输入框的内容【清空】按钮没有反应1
YFMB-BUG-002运费模板运费模板页面,点击【全选】复选框,偶数行不选中1. 登录系统->进入运费模板页面 2. 点击【全选】复选框所有数据被选中只选中了奇数行数据1
YFMB-BUG-003运费模板运费模板页面,【批量删除】按钮无法删除所有选中数据1. 登录系统->进入运费模板页面 2. 点击【全选】复选框 3. 点击【批量删除】所有被选中的数据都删除成功只删除了第一条数据1
YFMB-BUG-004运费模板运费模板页面,【修改】、【删除】按钮的图标显示不正确1. 登录系统->进入运费模板页面 2. 查看【修改】、【删除】按钮【删除】按钮显示垃圾桶图标 【修改】按钮显示笔图标【删除】、【修改】按钮图标反过来了2
YFMB-BUG-005运费模板运费模板页面,【搜索】、【清空】按钮没有对齐,不美观1. 登录系统->进入运费模板页面 2. 查看【搜索】、【清空】按钮【搜索】、【清空】按钮对齐,且间距相同【搜索】、【清空】按钮没有对齐,间距不相同2
YFMB-BUG-006运费模板运费模板页面,【模板名称】不支持模糊匹配1. 登录系统->进入运费模板页面 2. 【运费模板】输入:包 3. 点击【搜索】或按【回车】输入框支持模糊匹配,且正确查询数据不支持模糊匹配1
YFMB-BUG-007运费模板运费模板页面,【刷新】按钮没有反应1. 登录系统->进入运费模板页面 2. 点击页面上【刷新】按钮图标页面数据进行刷新【刷新】按钮图标没有反应1
YFMB-BUG-008运费模板运费管理页面,【模板名称】输入过多的字符提示不正确1. 登录系统->进入运费模板页面 2. 【模板名称】输入5000字以上字符提示:字符长度超出限制提示:服务器出了点小差,请稍后再试2
YFMB-BUG-009运费模板运费管理页面,不可以选择偶数行的数据1. 登录系统->进入运费模板页面 2. 点击偶数行的【复选框】当前【复选框】行被选中无法选中当前【复选框】行1
YFMB-BUG-010运费模板运费管理页面,【批量删除】按钮,没有图标,不美观1. 登录系统->进入运费模板页面 2. 查看【批量删除】按钮建议【批量删除】按钮里添加【垃圾桶】图标,更美观【批量删除】按钮,里面没有图标,不够美观2
YFMB-BUG-011运费模板运费管理页面,在新增完成 运费模板时,最新的数据不是最上面1. 登录系统->进入运费模板页面 2. 正确添加一条运费模板 3. 查看位置最新的数据将被添加在最前面最新的数据不是放置在最前面1
XJYFMB-BUG-001新增运费模板新增运费模板页面,添加可以添加重复的数据1. 登录系统>进入运费模板页面>点击【新增】 2. 输入页面中已有的【模板名称】 3. 点击【确定】提示:模板名称已存在,请重新输入添加成功1
XJYFMB-BUG-002新增运费模板新增运费模板页面,【首件(个)】,可以输入负数1. 登录系统>进入运费模板页面>点击【新增】 2. 输入【首件(个)】(负数) 3. 其他项输入正确 4. 点击【确定】提示:请输入正确的首件(个)没有提示,且可以成功保存1
XJYFMB-BUG-003新增运费模板新增运费模板页面,【续件(个)】,可以输入小数1. 登录系统>进入运费模板页面>点击【新增】 2. 输入【续(个)】(小数) 3. 其他项输入正确 4. 点击【确定】提示:请输入正确的续件(个)没有提示,且可以成功保存1
XJYFMB-BUG-004新增运费模板新增运费模板页面,点击【按体积】单选框时,无法选择1. 登录系统>进入运费模板页面>点击【新增】 2.【收费方式】点击【按体积】单选框成功进入到相应页面系统无反应1
XJYFMB-BUG-005新增运费模板新增运费模板页面,在指定条件包裹时,输入框没有做检验,可以输入任何值1. 登录系统>进入运费模板页面>点击【新增】 2. 勾选【指定条件包裹】复选框 3. 勾选【满件/重量/体积且满金额包邮】 4. 输入框输入(英文特殊字符及数字和空格组合)输入框进行输入数值的校验输入框没有做任何校验1

题目3:单元测试

题目描述

​ 请使用“基本路径法”为被测源代码 GroupPurchase 类中的submitOrder()方法设计单元测试用例,并在GroupPurchaseTest类中完成单元测试代码。

【源代码功能】
某团购网站开展团购活动,用户参团下单时,如果满足成团规则即可按折扣单价成交。成团规则如下:

  • 参团时间在该团购的活动时间段内:14:00:00~14:30:00;若不满足该条件,系统提示“当前时问没有正在进行中的活动”;
  • 当前参团用户为“已登录”状态。若不满足该条件,系统提示“请登录”
  • 该团购当前的参团用户不少于3个且团购总量不少于100。若不满足该条件,系统提示“参团用户少于3家或团购数量不足100,暂未成团”

​ 若以上三个成团规则全部符合,则该团购的所有参团用户可按相应的折扣单价成交,具体折扣标准如下:

  • 团购总量小于等于200时,成交单价打九五折;

  • 团购总量大于200日小于等于500时,成交单价打九折。

  • 团购总量大于500 时,成交单价打八折。

工具操作
第1步:请继续在 eclipse 中编写 Java 单元测试代码。
注意:如果您单元测试使用的是Python代码,请查看Python的单元测试题目,并在 eclipse 工具中也切换到 Python 工程中编写代码,并注意提交正确的答案。
第2步:打开题目压缩包中的【学生源码包】→【unit】文件夹,查看如下2个文件:

  • 被测源代码文件 GroupPurchase.java

  • 测试代码文件 GroupPurchaseTest.java

第3步:请把上述2文件复制到Eclipse 工具中对应的位置,然后开始填写单元测试代码。文件位置如下图所示:

在这里插入图片描述

单元测试答案代码

package cn.lanqiao.unit;

import static org.junit.Assert.assertEquals;

import org.junit.Before;
import org.junit.Test;

import cn.lanqiao.GroupPurchse;

public class GroupPurchseTest {
	
	static GroupPurchse pruchase;
	
	@Before
	public void initGroupPurchseTest() {
		pruchase = new GroupPurchse();
	}
	
	@Test
	public void test01() {
		//TODO
		assertEquals("当前时间没有正在进行中的活动", pruchase.submitOrder("13:30:00", true, 3, 100, 300));
	}
	
	@Test
	public void test02() {
		//TODO
		assertEquals("当前时间没有正在进行中的活动", pruchase.submitOrder("15:30:00", true, 3, 100, 300));
	}
	
	@Test
	public void test03() {
		//TODO
		assertEquals("请登录", pruchase.submitOrder("14:15:00", false, 3, 100, 300));
	}
	
	@Test
	public void test04() {
		//TODO
		assertEquals("参团用户少于3家或团购数量不足100,暂未成团", pruchase.submitOrder("14:10:00", true, 2, 0, 50));
	}

	@Test
	public void test05() {
		//TODO
		assertEquals("参团用户少于3家或团购数量不足100,暂未成团", pruchase.submitOrder("14:15:00", true, 4, 80, 300));
	}
	
	@Test
	public void test06() {
		//TODO
		assertEquals("成交单价打九五折", pruchase.submitOrder("14:15:00", true, 4, 120, 120));
	}
	
	@Test
	public void test07() {
		//TODO
		assertEquals("成交单价打九折。", pruchase.submitOrder("14:15:00", true, 4, 300, 500));
	}
	
	@Test
	public void test08() {
		//TODO
		assertEquals("成交单价打八折。", pruchase.submitOrder("14:15:00", true, 4, 600, 300));
	}
	
}

题目4:自动化测试 python

​ 这里是使用python做的,题目描述的虽然是java,但大差不差

题目描述

​ 请使用 Java 编程语言,结合 PO 模式(Page Object Model,页面对象模型)思想,使用 Selenium 自动化测试工具补全如下4个类文件中 TODO 处缺失的代码:

  • Pagel:LognPage.java,“登录”页面
  • Page2:FreightPage.java,“运费模板”页面
  • Page3:AddFreightPage.java,“新增运费模板”页面

WebCaseTest.java:测试用例代码文件请按照用例步骤,在测试用例 WebCaseTest.java文件中通过调用3个Page 类中的方法完成自动化测试代码。

具体的操作步骤如下:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评分标准

  • 3个page 类中方法的实现,每个占1.5分,共计27分。

  • WebCaseTest类文件中分别从规范、测试用例覆盖度、断言结果3个方面进行判分,共 23 分。

    • 规范(共4分):未合理使用等待方法,扣4分。
    • 测试用例步骤(共16分):每个步骤1分,共16分。
    • 测试用例断言(共3分):每个断言1分,共3处断言,断言不正确或者不通过,则按照已通过的断言个数给分。
  • 如整个项目代码编译失败,则扣除Page页中方法分和测试用例分数,但不影响规范得分。

代码实现

​ login_page.py

from selenium.webdriver.common.by import By
"""
 * Page1-【登录】页面
 * 
 * 
 * 1. 输入【用户名】
 * 2. 输入【密码】
 * 3. 点击【登录】按钮
"""

class LoginPage:
    def __init__(self, driver):
        self.driver = driver

    
    def input_login_name(self, loginName):
        # TODO 实现 【登录名称】输入的方法
        self.driver.find_element(By.XPATH, '/html/body/div[1]/div/div[2]/form/div[1]/div/div[1]/input').send_keys(loginName)
    
    
    def input_login_password(self, password):
        # TODO 实现【密码】输入的 方法
        self.driver.find_element(By.XPATH, '/html/body/div[1]/div/div[2]/form/div[2]/div/div/input').send_keys(password)

    def click_login_button(self):
        # TODO 实现 【登录】按钮的点击方法
        self.driver.find_element(By.XPATH, '/html/body/div[1]/div/div[2]/form/div[3]/div/div/input').click()

​ fright_page.py

from selenium.webdriver.common.by import By
"""
 * 
 * 
 * 
 * 1. 获取登录成功后用户名文本方法
   2. 点击【门店管理】菜单的方法
   3. 点击【运费模板】菜单的方法
   4. 点击【+新增】按钮的方法
   5. 搜索项输入模板名称方法
   6. 点击【搜索】按钮的方法
   7. 点击列表【删除】按钮的方法
   8. 点击弹框【确定】按钮的方法
   9. 获取分页文本方法
   
"""

class FrightPage:
    def __init__(self, driver):
        self.driver = driver
        
    def get_username_text(self):
        # TODO 实现 获取登录成功后用户名文本方法
        return self.driver.find_element(By.XPATH, '/html/body/div[1]/nav/div[2]/ul[2]/li/div/span').text
        
    def click_store_meun(self):
        # TODO 实现 点击【门店管理】菜单的方法
        self.driver.find_element(By.XPATH, '/html/body/div[1]/aside/div/ul/li[3]/div').click()
    
    def click_model_meun(self):
        # TODO 实现 点击【运费模板】菜单的方法
        self.driver.find_element(By.XPATH, '/html/body/div[1]/aside/div/ul/li[3]/ul/li[4]').click()
        
    def click_add_button(self):
        # TODO 实现 点击【+新增】按钮的方法
        self.driver.find_element(By.XPATH, '/html/body/div[1]/div/main/div/div[2]/div[2]/div/div/div/div/div[2]/div/div[1]/div[1]/button[1]').click()
        
    def input_freight_name(self, name):
        # TODO 实现 搜索项输入模板名称方法
        self.driver.find_element(By.XPATH, '/html/body/div[1]/div/main/div/div[2]/div[2]/div/div/div/div/div[1]/div/div/form/div/div/div/div/div[2]/div/div/div[1]/div/div/div/div/input').send_keys(name)
        
    def click_search_button(self):
        # TODO 点击【搜索】按钮的方法
        self.driver.find_element(By.XPATH, '/html/body/div[1]/div/main/div/div[2]/div[2]/div/div/div/div/div[1]/div/div/form/div/div/div/div/div[2]/div/div/div[2]/div/div/button').click()

    def click_delete_button(self):
        # TODO 点击列表【删除】按钮的方法
        self.driver.find_element(By.XPATH, '/html/body/div[1]/div/main/div/div[2]/div[2]/div/div/div/div/div[2]/div/form/div/div[5]/div[2]/table/tbody/tr/td/div/button[2]').click()
    def get_page_number_text(self):
        # TODO 获取分页文本方法
        return self.driver.find_element(By.XPATH, '/html/body/div[1]/div/main/div/div[2]/div[2]/div/div/div/div/div[2]/div/div[2]/div/span[1]').text
    def click_confirm_button(self):
        # TODO 点击弹框【确定】按钮的方法
        self.driver.find_element(By.XPATH, '/html/body/div[3]/div/div[3]/button[2]').click()

​ add_fright_page.py

from selenium.webdriver.common.by import By
"""
 * 
 * 
 * 
 * 1. 输入模板名称【运费模板】
   2. 输入首件(个)【1】方法
   3. 输入运费(元)【2】方法
   4. 输入续件(个)【3】方法
   5. 输入续费(元)【4】方法
   6. 点击【确定】按钮方法
   
"""

class AddFrightPage:
    def __init__(self, driver):
        self.driver = driver
        
    def input_freight_name(self, name):
        # TODO 实现 输入模板名称【运费模板】的方法
        self.driver.find_element(By.XPATH, '/html/body/div[1]/div/main/div/div[2]/div[2]/div/div/div/div[2]/div/div[2]/form/div[1]/div/div/input').send_keys(name)
    
    def input_firstArticle(self, num):
        # TODO 实现 输入输入首件(个)【1】的方法
        self.driver.find_element(By.XPATH, '/html/body/div[1]/div/main/div/div[2]/div[2]/div/div/div/div[2]/div/div[2]/form/div[4]/div[3]/table/tbody/tr/td[2]/div/div/div/div/input').send_keys(num )     
    def input_freight(self, money):
        # TODO 实现 输入运费(元)【2】的方法
        self.driver.find_element(By.XPATH, '/html/body/div[1]/div/main/div/div[2]/div[2]/div/div/div/div[2]/div/div[2]/form/div[4]/div[3]/table/tbody/tr/td[3]/div/div/div/div/input').send_keys(money)
    def input_contiunation(self, individual):
        # TODO 实现 输入续件(个)【3】的方法
        self.driver.find_element(By.XPATH, '/html/body/div[1]/div/main/div/div[2]/div[2]/div/div/div/div[2]/div/div[2]/form/div[4]/div[3]/table/tbody/tr/td[4]/div/div/div/div/input').send_keys(individual)
    def input_renew(self, money):
        # TODO 实现 输入续费(元)【4】的方法
        self.driver.find_element(By.XPATH, '/html/body/div[1]/div/main/div/div[2]/div[2]/div/div/div/div[2]/div/div[2]/form/div[4]/div[3]/table/tbody/tr/td[5]/div/div/div/div/input').send_keys(money)
    def click_ok_button(self):
        # TODO 实现 点击【确定】按钮方法
        self.driver.find_element(By.XPATH, '/html/body/div[1]/div/main/div/div[2]/div[2]/div/div/div/div[2]/div/div[3]/span/button[2]').click()    

​ web_case_test.py

import unittest
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from cn.lanqiao.web.login_page import LoginPage
from cn.lanqiao.web.freight_page import FrightPage
from cn.lanqiao.web.add_freight_page import AddFrightPage
from time import sleep


class TestWebCase(unittest.TestCase):
    
    
    # 浏览器初始化
    def setUp(self):
        # 不要改动此处 driver 位置
        gecko_path = "C:\\LanQiaoTest\\project\\PythonLanqiaoTest\\driver\\geckodriver.exe"
        
        options = webdriver.FirefoxOptions()
        
        options.set_preference('security.fileuri.strict_origin_policy', False)
        
        options.set_preference('security.fileuri.origin_policy', '*')
        
        self.driver = webdriver.Firefox(service=Service(gecko_path),options=options)
      
        self.driver.implicitly_wait(10)
        
        self.driver.maximize_window()
        
        # TODO 打开被测系统的网址
        self.driver.get("http://localhost:8090/#/login")
        
        # 请在此方法中续写测试用例
    def test_browser(self):
        
        # 创建 login_page 对象
        login_page = LoginPage(self.driver)
        
        # 创建 freight_page 对象
        freight_page = FrightPage(self.driver)
        
        # 创建 add_freight_page 对象
        add_freight_page = AddFrightPage(self.driver)

        # TODO 请调用以上3个实例化对象中的方法完成测试用例代码(具体请参照题目中的用例步骤描述和截图)
        login_page.input_login_name('admin')
        login_page.input_login_password('LQSTesting@2004')
        login_page.click_login_button()
        
        sleep(1)
        username = freight_page.get_username_text()
        self.assertEqual('admin', username)
        freight_page.click_store_meun()
        freight_page.click_model_meun()
        freight_page.click_add_button()
        
        sleep(1)
        add_freight_page.input_freight_name('运费模板')
        add_freight_page.input_firstArticle('1')
        add_freight_page.input_freight('2')
        add_freight_page.input_contiunation('3')
        add_freight_page.input_renew('4')
        add_freight_page.click_ok_button()
        
        sleep(5)
        page_num = freight_page.get_page_number_text()
        self.assertEqual('共 4 条', page_num)
        freight_page.input_freight_name('运费模板')
        freight_page.click_search_button()
        freight_page.click_delete_button()
        freight_page.click_confirm_button()
        sleep(5)
        page_num_2 = freight_page.get_page_number_text()        
        self.assertEqual('共 3 条', page_num_2)        
    
    def tearDown(self):
        sleep(3)
        self.driver.quit()
        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1610846.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MATLAB 体素滤波(62)

MATLAB 体素滤波(62) 一、算法介绍二、算法实现1.代码(已验证,直接运行)一、算法介绍 这里的代码完成文件读入,体素滤波,效果显示,结果输出的操作,下面是效果截图,后面是代码。 体素滤波(Voxel Filtering)是一种用于三维点云数据处理的方法,其原理类似于二维图像…

linux提权——提权大赏

文章目录 一、可读shadow文件利用提权二、可写shadow文件利用提权三、可写passwd文件利用提权四、sudo环境变量提权配置环境实验 五、自动任务文件权限提升配置环境实验 六、自动任务PATH环境变量提权七、自动任务通配符提权 一、可读shadow文件利用提权 ls -al /etc/shadow #…

JUC面试——⭐⭐Java中的四种引用类型/Threadlocal

四种引用类型 Java 中对象的引用分为四种级别,这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。 基础知识 强引用:普通使用的引用 强引用是造成 Java 内存泄漏的主要原因之一 软引用: GC内存不够时回收 适用于&…

RK3588 linux 修改ulimit 配置

前言 ulimit 主要是用来限制进程对资源的使用情况的,它支持各种类型的限制,常用的有: 内核文件的大小限制进程数据块的大小限制Shell进程创建文件大小限制可加锁内存大小限制常驻内存集的大小限制打开文件句柄数限制分配堆栈的最大大小限制C…

椋鸟数据结构笔记#10:排序·中

文章目录 四、归并排序时间复杂度实现递归实现非递归实现 测试稳定性 五、非比较排序5.1 计数排序时间复杂度实现测试局限性 5.2 桶排序时间复杂度实现测试 5.3 基数排序时间复杂度实现测试局限性 萌新的学习笔记,写错了恳请斧正。 四、归并排序 归并排序是一种非常…

pta L1-063 吃鱼还是吃肉

L1-063 吃鱼还是吃肉 分数 10 全屏浏览 切换布局 作者 陈越 单位 浙江大学 国家给出了 8 岁男宝宝的标准身高为 130 厘米、标准体重为 27 公斤;8 岁女宝宝的标准身高为 129 厘米、标准体重为 25 公斤。 现在你要根据小宝宝的身高体重,给出补充营养的…

java实现识别图片上的文字(OCR识别身份证等证件信息)

利用第三方jar包,实现识别图片上的文字。第三方支持地址:Spire.OCR for Java | 专业的图文识别组件,用以读取图片格式中的文本Spire.OCR for Java 是专为 Java 开发者设计的强大OCR库,提供高效的文字识别功能,能够从图…

Proxy 代理

意图 为其它对象提供一种代理以控制这个对象的访问。 结构 Proxy保存一个引用使得代理可以访问实体;提供一个与Subject的接口相同的接口,使代理可以用来替代实体;控制实体的存取,并可能负责创建和删除它;其他功能依赖…

企业文档知识库建设,数据安全如何保障?

随着现代市场经济的高速发展,企业的竞争优势越来越多体现在人才和科技的优势。而随着员工流动率的提升,随之流失的则是员工积累多年的宝贵工作经验,如果缺乏有效的内部知识库的建设和管理,企业的竞争优势将难以维系。「企业网盘」…

网络管理实验三、SNMP协议工作原理验证与分析

1 实验概括 实验目的: 学习捕获SNMP报文,通过报文分析理解SNMP协议的工作过程。 实验内容: 1) 使用snmputilg发送SNMP数据包; 使用wireshark抓包;使用netstat –an查看代理站TCP/UDP连接表; 2)…

单机调度问题(第i工件的完工时间=加工时间+等待时间)

第08章 制造系统的调度控制 - 百度文库 (baidu.com) 模拟退火单机极小化总流水时间的排序问题_哔哩哔哩_bilibili 在单机调度问题中,工件的完工时间是一个至关重要的指标,因为它直接反映了生产效率的高低。而完工时间的计算,必须同时考虑工件…

cocos creator 3.6 发布web手机端 加载进度条添加

cocos creator 升级到3.x之后加载进度条取消了,测试了多个3.x版本最终以creator 3.6.3版本,构建了简单的进度加载 参考链接: https://forum.cocos.org/t/topic/137113 打包web-mobile后,没有进度条。加载的时候只显示一个黑屏。…

贪吃蛇设计详解

在去年12月中,初次接触c语言,我靠着为数不多的知识,使用数组仿照写了一份贪吃蛇,现在时隔5个月,我已经有能力独立写出真正的贪吃蛇而不是简单的仿照(虽然写的是挺简单的)。 那么我们现在就正式…

在ComfyUI中使用Deforum简单步骤, 以及报错处理

⛳背景 deforum这个插件其实去年就在webui流行的时候火过一阵子,效果的话,因为并没有引入太多“时间”的概念,所以画面基本上每一帧都不一样,但也恰恰因为这个,所以可以产生很多宛若吃了毒蘑菇的视频,后来…

Rokid AR Lite空间计算套装发布,软硬件全面升级推动居家、出行、户外场景大规模应用

4月20日,以“好玩、好看、好上头”为主题的Rokid Open Day 2024发布会在杭州举行,Rokid对外正式发布新一代AR Lite空间计算套装,分享了近期Rokid在AR开发者生态和数字文化领域的进展和成果,并宣布了多项跨行业重磅合作。作为中国代…

OerOerlikonTCO1200欧瑞康LPCVD system操作使用说明

OerOerlikonTCO1200欧瑞康LPCVD system操作使用说明

javaWeb项目-智能仓储系统功能介绍

项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog 1、JSP技术 JSP(Jav…

MySQL 列数据跨表拷贝,一句SQL快速将表A每条记录的某些字段拷贝到表B每条记录的某些字段(A、B表通过ID等字段对应)

文章目录 MySQL 列数据跨表拷贝,一句SQL快速将表A每条记录的某些字段拷贝到表B每条记录的某些字段(A、B表通过ID等字段对应)背景定义表填充测试数据跨表一 一对应拷贝列数据SQL参考资料 MySQL 列数据跨表拷贝,一句SQL快速将表A每条…

OSPF动态路由实验(思科)

华为设备参考:OSPF动态路由实验(华为) 一,技术简介 OSPF(Open Shortest Path First)是一种内部网关协议,主要用于在单一自治系统内决策路由。它是一种基于链路状态的路由协议,通过…

漆包线行业你了解多少?专业漆包线行业MES生产管理系统

今天就说说漆包线行业,漆包线是工业电机(包括电动机和发电机)、变压器、电工仪表、电力及电子元器件、电动工具、家用电器、汽车电器等用来绕制电磁线圈的主要材料。 漆包线上游是铜杆行业,下游是各种消费终端,主要是电…