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

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()
        

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【介绍下LeetCode的使用方法】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

1.为什么选择Vue框架

参考:百战程序员 为什么选择Vue框架 Vue是什么? 渐进式 JavaScript 框架,易学易用,性能出色,适用场景丰富的 Web 前端框架 为什么要学习Vue Vue是目前前端最火的框架之一Vue是目前企业技术栈中要求的知识点Vue可以…

Lesson4--栈和队列

【本节目标】 1.栈 2.队列 3.栈和队列面试题 1.栈 1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。 栈中的数据元素遵守后进先出 LIFO &…

vue快速入门(三十五)组件通信-父传子

注释很详细&#xff0c;直接上代码 上一篇 新增内容 父组件传值子组件接收父组件传来的数据 源码 App.vue <template><div id"app"><!-- :item"item"为将item的值传递给MyTest组件 --><MyTest v-for"item in roles" :key&q…

【双曲几何】圆盘上的三角形概念

目录 一、说明二、对偶三角形概念2.1 反演关系2.2 对偶关系2.3 找出三角形的对偶三角形 三、正交三角形概念3.1 通过对偶三角形&#xff0c;找到垂心3.2 正交三角形的概念3.3 中心射影点的概念 四、后记 一、说明 本文对双曲空间的三角形进行分析&#xff0c;本篇首先给出&am…

(vue)el-select选择框加全选/清空/反选

(vue)el-select选择框加全选/清空/反选 <el-form-item label"批次"><el-selectv-model"formInline.processBatch"multiplecollapse-tagsfilterableplaceholder"请选择"style"width: 250px"no-data-text"请先选择企业、日…

基于docker的开发者集成环境

docker-compose一键部署开发者环境。 常见的中间件&#xff1a;nginx, mysql, redis, mongo, rabbitmq, nacos, rocketmq, zookeeper等。 GIthub项目地址 1. 下载项目&#xff1a;git clone https://github.com/xhga/docker-develop-env.git 2. 进入文件夹&#xff1a;cd d…

实例分割——苹果数据集

一、重要性及意义 重要性&#xff1a; 提升农业生产效率&#xff1a;通过自动化检测和分割技术&#xff0c;可以快速准确地识别出图像中的苹果&#xff0c;进而实现自动化的采摘、计数和品质评估。这极大地提高了农业生产的效率&#xff0c;减少了人工劳动成本。 优化资源配置…

【网站项目】高校毕业论文管理系统小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

力扣:LCR 022. 环形链表 II

力扣&#xff1a;LCR 022. 环形链表 II 给定一个链表&#xff0c;返回链表开始入环的第一个节点。 从链表的头节点开始沿着 next 指针进入环的第一个节点为环的入口节点。如果链表无环&#xff0c;则返回 null。 为了表示给定链表中的环&#xff0c;我们使用整数 pos 来表示链…

为了机器学习量化策略,我标注了两万条数据

题图&#xff1a;芝加哥大学海德公园。芝大是经济学重镇&#xff0c;其学者开创了著名的芝加哥经济学派&#xff0c;共产生了 100 位诺奖、10 位菲尔兹奖、4 位图灵奖。今天量化人追逐的 Alpha&#xff0c; 最早就来自于 Michael Jessen 在芝大时的博士论文。 很多人对基于机器…

Git - 在PyCharm/Idea中集成使用Git

文章目录 Git - 在PyCharm/Idea中集成使用Git1.新建GitHub仓库2.将仓库与项目绑定3.在PyCharm中使用Git4.新建Gitee仓库5.将仓库与项目绑定6.在IDEA中使用Git Git - 在PyCharm/Idea中集成使用Git 本文详细讲解了如何在 PyCharm 或 Idea 中配置 Gitee 或 GitHub 仓库&#xff0…

稀碎从零算法笔记Day53-LeetCode:不同路径 II

稀碎系列有点更不动(更多是自己懈怠了) 题型&#xff1a;矩阵、模拟 链接&#xff1a;63. 不同路径 II - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &…

DQ-DETR: DETR WITH DYNAMIC QUERY FOR TINY OBJECTDETECTION 学习笔记

论文地址&#xff1a;https://arxiv.org/pdf/2404.03507.pdf 此DQ-DETR与IDEA提出的同名&#xff0c;该文主要集中于小目标的检测 尽管之前的类似DETR的方法在通用目标检测中取得了成功&#xff0c;但在小目标检测方面仍然具有挑战性&#xff0c;因为目标 Query 的位置信息并未…

软件开发中的“左移”是什么意思?

我曾经有过一个经理&#xff0c;在讨论我们的项目时提到&#xff0c;我们需要尽可能地将我们的工作左移。 几个月后&#xff0c;在一次面试中&#xff0c;面试官问我是否知道“左移”是什么意思。 除非有人没告诉我一个秘密的软件舞蹈&#xff0c;我现在就来告诉你左移是什么…

iview中基于upload源代码组件封装更为完善的上传组件

业务背景 最近接了一个用iview为基础搭建的vue项目&#xff0c;在开需求研讨会议的时候&#xff0c;我个人提了一个柑橘很合理且很常规的建议&#xff0c;upload上传文件支持同时上传多个并且可限制数量。当时想的是这不应该很正常吗&#xff0c;但是尴尬的是&#xff1a;只有…

YZ系列工具之YZ10:VBA_梦幻图像

我给VBA下的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套一部VBA手册&#xff0c;教程分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的…

一分钟成为点灯大师(超简单1行代码-STM32F407的HAL实现按键中断方式点亮LED灯)

一、开发环境 硬件&#xff1a;正点原子探索者 V3 STM32F407 开发板 单片机&#xff1a;STM32F407ZGT6 Keil版本&#xff1a;5.32 STM32CubeMX版本&#xff1a;6.9.2 STM32Cube MCU Packges版本&#xff1a;STM32F4 V1.27.1 使用STM32F407的HAL库实现按键中断方式读取按键…

HCF-Net:用于红外小目标检测的分层上下文融合网络

摘要 红外小目标检测是一项重要的计算机视觉任务&#xff0c;涉及在红外图像中识别和定位微小物体&#xff0c;这些物体通常仅包含几个像素。然而&#xff0c;由于物体尺寸极小以及红外图像中通常复杂的背景&#xff0c;这项任务面临困难。在本文中&#xff0c;我们提出了一种…

【漏洞复现】魔方网表mailupdate.jsp接口存在任意文件上传漏洞

漏洞描述 魔方网表帮助其搭建了支持信创环境的端到端的一站式数据智能填报系统,实现数据收集模板个性化定义,收集任务集中管控,结构化数据存储、分析及呈现等功能。魔方网表mailupdate.jsp接口存在任意文件上传漏洞 免责声明 技术文章仅供参考,任何个人和组织使用网络应当…