做网站的草图 用什么画/关键词分词工具

做网站的草图 用什么画,关键词分词工具,中英文网站建设 大概要多久,网站直播间怎么做目录 一:项目背景 二:项目功能 (1) 注册功能 (2) 登录功能 电话 密码登录 电话 短信登录 三:设计测试用例 四:功能测试 五:自动化测试代码 七:遗留风…

目录

一:项目背景

二:项目功能

(1) 注册功能

(2) 登录功能

     电话 + 密码登录

 电话 + 短信登录

三:设计测试用例

四:功能测试

五:自动化测试代码

七:遗留风险

八:测试结果评估


一:项目背景

在市场竞争白热化的当下,企业与商家亟需不断推陈出新,打造新颖的营销手段,以此抓住消费者的目光。传统营销模式渐显疲态,消费者对千篇一律的促销活动已然产生审美疲劳。抽奖作为一种极具吸引力的营销手段,能够迅速激发消费者的参与热情。通过设置丰富多样的奖品,如现金红包、优惠券、实物礼品等,不仅能提升消费者在购物过程中的乐趣,增强其对品牌的好感度,还能显著促进销售额的增长。以电商平台的促销活动为例,抽奖系统作为关键的互动环节,能吸引用户浏览商品页面,延长用户在平台的停留时长,有效提高商品的曝光率与销售量

二:项目功能

(1) 注册功能

输入信息

       姓名:必填项,支持中文、英文及常见符号,长度限制在 1-50 个字符。

       邮箱:必填项,需符合邮箱地址格式规范,系统将对输入邮箱进行格式校验,确保其有效性。

       手机号:必填项,仅支持中国大陆手机号码,格式为 11 位数字,系统需对输入的手机号码进行格式验证。

​​​​​​​       密码:必填项,密码强度要求为 8-20 位,至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符(如!@#$%^&* 等)。系统需对密码复杂度进行实时校验,并提示用户密码强度是否符合要求。

 注册流程

管理员在注册页面依次输入姓名、邮箱、手机号和密码。

      系统验证输入信息的格式和完整性。若存在格式错误或必填项未填写,系统在相应输入框旁提示错误信息,引导管理员更正。

     当所有信息输入正确且格式无误后,管理员点击 “注册” 按钮。

      系统检查输入的手机号和邮箱是否已在系统中注册。若已注册,提示管理员该手机号或邮箱已被使用,需更换后重新注册。

       若手机号和邮箱未被注册,系统将管理员信息存储至数据库,并向管理员注册邮箱发送注册成功通知邮件,邮件内容包含账号信息及系统登录指引。

(2) 登录功能

     电话 + 密码登录

     输入信息

​​​​​​​手机号:必填项,格式同注册时要求,为 11 位中国大陆手机号码。

​​​​​​​密码:必填项,输入注册时设置的密码。

      登录流程

        管理员在登录页面选择 “电话 + 密码登录” 方式。

        依次输入手机号和密码。

          系统对输入的手机号和密码进行格式校验。若格式错误,提示管理员重新输入。

      系统在数据库中查询匹配的管理员账号信息。若手机号和密码匹配成功,且该账号为管理员身份,则登录成功,进入抽奖系统管理后台;若匹配失败,提示管理员 “手机号或密码错误,请重新输入”。

 电话 + 短信登录

  输入信息

​​​​​​​手机号:必填项,格式同注册要求。

登录流程

管理员在登录页面选择 “电话 + 短信登录” 方式。

输入手机号后,点击 “获取验证码” 按钮。

系统校验手机号格式是否正确。若格式错误,提示管理员更正。

若手机号格式正确,系统向该手机号发送一条包含 6 位数字验证码的短信。短信内容应明确告知该验证码用于抽奖系统登录,有效期为 5 分钟。

管理员在收到短信后,在登录页面输入收到的验证码。

系统验证验证码的有效性及准确性。若验证码正确且在有效期内,系统在数据库中查询该手机号对应的账号信息,若为管理员身份,则登录成功,进入抽奖系统管理后台;若验证码错误或已过期,提示管理员 “验证码错误或已过期,请重新获取”。同一手机号在 1 小时内获取验证码次数限制为 5 次,超过次数则提示 “获取验证码次数过多,请稍后再试”。

三:设计测试用例

四:功能测试

部分测试界面截图

正常登录

密码格式不正确能进行提示 

a'd 

五:自动化测试代码

项目目录结构

 ChromeBrowser代码

package browserManager;import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;import java.time.Duration;public class ChromeBrowser {//创建浏览器驱动public static ChromeDriver getChromeDriver(){//设置谷歌浏览器驱动WebDriverManager.chromedriver().setup();//添加浏览器配置ChromeOptions chromeOptions = new ChromeOptions();chromeOptions.addArguments("--remote-allow-origins=*");//允许任何来源的远程连接ChromeDriver chromeDriver = new ChromeDriver(chromeOptions);//添加隐式等待chromeDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));return chromeDriver;}
}

CutScreen代码

package browserManager.screenManager;import io.github.bonigarcia.wdm.WebDriverManager;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.RemoteWebDriver;import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.List;public class CutScreen {//屏幕截图public static void saveScreen(String methodName , RemoteWebDriver driver) throws IOException {//设置时间格式SimpleDateFormat sim1 = new SimpleDateFormat("yyy-MM-dd");SimpleDateFormat sim2 = new SimpleDateFormat("HH-mm-ss");String dirTime = sim1.format(System.currentTimeMillis());String fileTime = sim2.format(System.currentTimeMillis());String fileName = "./src/test/image/"+dirTime+"/"+methodName+"-"+fileTime+".png";//截屏System.out.println("截图路径:"+fileName);File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);FileUtils.copyFile(srcFile,new File(fileName));}
}

RegistSuccess代码

package lotteryRegisty;import browserManager.ChromeBrowser;
import browserManager.screenManager.CutScreen;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.remote.RemoteWebDriver;import java.io.IOException;
import java.time.Duration;public class RegistSuccess {//打开浏览器public static void regist(RemoteWebDriver chromeDriver,String userName,String mail,String phoneNumber,String password) throws InterruptedException, IOException {try{//输入登录网址chromeDriver.get("http://47.93.243.4:9090/blogin.html");//找到注册按钮点击chromeDriver.findElement(By.cssSelector("body > div > div.login-container.col-sm-6.col-md-6.col-lg-5.col-xl-5 > div.register-link > a")).click();//在新页面找到姓名输入信息chromeDriver.findElement(By.cssSelector("#name")).sendKeys(userName);// ,邮箱,输入信息,chromeDriver.findElement(By.cssSelector("#mail")).sendKeys(mail);// 手机号,输入信息,chromeDriver.findElement(By.cssSelector("#phoneNumber")).sendKeys(phoneNumber);// 密码,输入信息,chromeDriver.findElement(By.cssSelector("#password")).sendKeys(password);//点击注册按钮chromeDriver.findElement(By.cssSelector("#registerForm > button")).click();//注册成功点击弹窗确认按钮Thread.sleep(2000);Alert alert = chromeDriver.switchTo().alert();String alertText = alert.getText();alert.accept();if(alertText.contains("注册失败")){throw new Exception("正常情况下注册失败");}}catch (Exception e){//截图CutScreen.saveScreen("RegistSuccess/regist", chromeDriver);//传入方法名与驱动e.printStackTrace();
}}}

RegistFail代码

package lotteryRegisty;import browserManager.screenManager.CutScreen;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.RemoteWebDriver;import java.io.IOException;
import java.time.Duration;public class RegistFail {private static void commonInput(RemoteWebDriver driver,String userName,String mail,String phoneNumber,String password){//在新页面找到姓名输入信息driver.findElement(By.cssSelector("#name")).sendKeys(userName);// ,邮箱,输入信息,driver.findElement(By.cssSelector("#mail")).sendKeys(mail);// 手机号,输入信息,driver.findElement(By.cssSelector("#phoneNumber")).sendKeys(phoneNumber);// 密码,输入信息,driver.findElement(By.cssSelector("#password")).sendKeys(password);}//姓名异常public static void registNameError(RemoteWebDriver driver,String userName,String mail,String phoneNumber,String password) throws InterruptedException, IOException {try{//输入登录网址driver.get("http://47.93.243.4:9090/blogin.html");//点击注册跳转按钮driver.findElement(By.cssSelector("body > div > div.login-container.col-sm-6.col-md-6.col-lg-5.col-xl-5 > div.register-link > a")).click();//输入信息commonInput(driver,userName,mail,phoneNumber,password);//点击注册按钮driver.findElement(By.cssSelector("#registerForm > button")).click();Thread.sleep(2000);//注册成功点击弹窗确认按钮Alert alert = driver.switchTo().alert();String alertText = alert.getText();alert.accept();if(alertText.contains("注册成功")){throw new Exception("用户名格式错误时注册成功");}}catch (Exception e){//截图CutScreen.saveScreen("RegistFail/registNameError", driver);//传入方法名与驱动e.printStackTrace();}}//邮箱异常public static void registMailError(RemoteWebDriver driver,String userName,String mail,String phoneNumber,String password) throws InterruptedException, IOException {try{//输入登录网址driver.get("http://47.93.243.4:9090/blogin.html");//点击注册跳转按钮driver.findElement(By.cssSelector("body > div > div.login-container.col-sm-6.col-md-6.col-lg-5.col-xl-5 > div.register-link > a")).click();//输入信息commonInput(driver,userName,mail,phoneNumber,password);//点击注册按钮driver.findElement(By.cssSelector("#registerForm > button")).click();Thread.sleep(2000);//注册成功点击弹窗确认按钮Alert alert = driver.switchTo().alert();String alertText = alert.getText();alert.accept();if(alertText.contains("注册成功")){throw new Exception("邮箱格式错误时注册成功");}}catch (Exception e){//截图CutScreen.saveScreen("RegistFail/registMailError", driver);//传入方法名与驱动e.printStackTrace();}}//手机号异常public static void registPhoneNumberError(RemoteWebDriver driver,String userName,String mail,String phoneNumber,String password) throws InterruptedException, IOException {try{//输入登录网址driver.get("http://47.93.243.4:9090/blogin.html");//点击注册跳转按钮driver.findElement(By.cssSelector("body > div > div.login-container.col-sm-6.col-md-6.col-lg-5.col-xl-5 > div.register-link > a")).click();//输入信息commonInput(driver,userName,mail,phoneNumber,password);//点击注册按钮driver.findElement(By.cssSelector("#registerForm > button")).click();Thread.sleep(2000);//注册成功点击弹窗确认按钮Alert alert = driver.switchTo().alert();String alertText = alert.getText();alert.accept();if(alertText.contains("注册成功")){throw new Exception("电话格式错误时注册成功");}}catch (Exception e){//截图CutScreen.saveScreen("RegistFail/registPhoneNumberError", driver);//传入方法名与驱动e.printStackTrace();}}//密码异常public static void registPassWordError(RemoteWebDriver driver,String userName,String mail,String phoneNumber,String password) throws InterruptedException, IOException {try{//输入登录网址driver.get("http://47.93.243.4:9090/blogin.html");//点击注册跳转按钮driver.findElement(By.cssSelector("body > div > div.login-container.col-sm-6.col-md-6.col-lg-5.col-xl-5 > div.register-link > a")).click();//输入信息commonInput(driver,userName,mail,phoneNumber,password);//点击注册按钮driver.findElement(By.cssSelector("#registerForm > button")).click();Thread.sleep(2000);//注册成功点击弹窗确认按钮Alert alert = driver.switchTo().alert();String alertText = alert.getText();alert.accept();if(alertText.contains("注册成功")){throw new Exception("密码格式错误时注册成功");}}catch (Exception e){//截图CutScreen.saveScreen("RegistFail/registPassWordError", driver);//传入方法名与驱动e.printStackTrace();}}
}

LoginSuccess代码

package lotteryLogin;import browserManager.screenManager.CutScreen;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.RemoteWebDriver;import java.io.IOException;public class LoginSuccess {public static void phonePasswordLogin(RemoteWebDriver driver, String phoneNumber,String password) throws IOException {
try{driver.get("http://127.0.0.1:9090/blogin.html");//打开浏览器//找到对应的输入框driver.findElement(By.cssSelector("#phoneNumber")).sendKeys(phoneNumber);driver.findElement(By.cssSelector("#password")).sendKeys(password);driver.findElement(By.cssSelector("#loginForm > button")).click();Thread.sleep(2000);//如果此时的页面url不包含admin.html,则登录失败String currentUrl = driver.getCurrentUrl();System.out.println(currentUrl);if(!currentUrl.contains("admin.html")){throw new Exception("登录失败,页面没跳转");}
}catch (Exception e){//截图CutScreen.saveScreen("LoginSuccess/phonePasswordLogin",driver);//传入方法名与驱动e.printStackTrace();
}}}

LoginFail代码

package lotteryLogin;import browserManager.screenManager.CutScreen;
import org.apache.commons.lang3.StringUtils;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.RemoteWebDriver;import java.io.IOException;public class LoginFail {//登录失败场景public static void pPphoneNumberIsEmpty(RemoteWebDriver driver,String password) throws IOException {try{driver.get("http://127.0.0.1:9090/blogin.html");//打开浏览器//只输入密码driver.findElement(By.cssSelector("#password")).sendKeys(password);//点击登录按钮driver.findElement(By.cssSelector("#loginForm > button")).click();//看看有没有框边提示String text = driver.findElement(By.cssSelector("#phoneNumber-error")).getText();if(StringUtils.isEmpty(text)){throw new RuntimeException("提示错误");}}catch (Exception e){//截图CutScreen.saveScreen("LoginFail/phoneNumberIsEmpty", driver);//传入方法名与驱动e.printStackTrace();}}public static void pPpasswordIsEmpty(RemoteWebDriver driver,String phoneNumber) throws IOException {try{driver.get("http://127.0.0.1:9090/blogin.html");//打开浏览器//只输入手机号driver.findElement(By.cssSelector("#phoneNumber")).sendKeys(phoneNumber);//点击登录按钮driver.findElement(By.cssSelector("#loginForm > button")).click();//看看有没有框边提示String text = driver.findElement(By.cssSelector("#password-error")).getText();if(StringUtils.isEmpty(text)){throw new RuntimeException("页面提示错误");}}catch (Exception e){//截图CutScreen.saveScreen("LoginFail/passwordIsEmpty", driver);//传入方法名与驱动e.printStackTrace();}}public static  void pPpassWordIsError(RemoteWebDriver driver,String phoneNumber,String password) throws IOException {try{driver.get("http://127.0.0.1:9090/blogin.html");//打开浏览器//找到对应的输入框driver.findElement(By.cssSelector("#phoneNumber")).sendKeys(phoneNumber);driver.findElement(By.cssSelector("#password")).sendKeys(password);driver.findElement(By.cssSelector("#loginForm > button")).click();Thread.sleep(2000);//登录失败弹窗Alert alert = driver.switchTo().alert();String alertText = alert.getText();alert.accept();if(!alertText.contains("登录失败")){throw new Exception("密码错误时登录成功");}}catch (Exception e){//截图CutScreen.saveScreen("LoginSuccess/phonePasswordLogin",driver);//传入方法名与驱动e.printStackTrace();}}}

Main代码入口

import browserManager.ChromeBrowser;
import lotteryLogin.LoginFail;
import lotteryLogin.LoginSuccess;
import lotteryRegisty.RegistFail;
import lotteryRegisty.RegistSuccess;
import org.openqa.selenium.chrome.ChromeDriver;import java.io.IOException;public class Main {public static void main(String[] args) throws InterruptedException, IOException {ChromeDriver chromeDriver = ChromeBrowser.getChromeDriver();RegistSuccess.regist(chromeDriver,"张三","1324566595@qq.com","17564432774","123456");//姓名为空RegistFail.registNameError(chromeDriver," ","1324567895@qq.com","17564832774","123456");//姓名过长RegistFail.registNameError(chromeDriver,"张fiasdfhdidjosdvmsadovmsdvopsdmvsdpaovmsdpovmsdpvmavasmdvpasmdvsadvms","1324467895@qq.com","17564832774","123456");//邮箱为空RegistFail.registMailError(chromeDriver,"张三"," ","17564832774","123456");//邮箱不符合格式规范RegistFail.registMailError(chromeDriver,"张三","1324567895qq.com","17564832774","123456");//注册邮箱已存在RegistFail.registMailError(chromeDriver,"张三","1324567895@qq.com","17564832774","123456");//手机号为空RegistFail.registPhoneNumberError(chromeDriver,"张三","1324567895@qq.com"," ","123456");//手机号不符合格式规范RegistFail.registPhoneNumberError(chromeDriver,"张三","1324567895@qq.com","1756483277","123456");//手机号已存在RegistFail.registPhoneNumberError(chromeDriver,"张三","1324567895@qq.com","17564832774","123456");//密码为空RegistFail.registPassWordError(chromeDriver,"张三","1324567895@qq.com","17564832774","");//密码小于8位RegistFail.registPassWordError(chromeDriver,"张三","1324567895@qq.com","17564832774","123");//密码大于20位RegistFail.registPassWordError(chromeDriver,"张三","1324567895@qq.com","17564832774","12345678912dfsdfsdfdsfdsfdfdfsfsafdsfsfdfdsfdsfdfdfdfdffdsdfsd3456789");//登录成功LoginSuccess.phonePasswordLogin(chromeDriver,"15660880523","kangjia456");//登录失败密码为空LoginFail.pPpasswordIsEmpty(chromeDriver,"15660880523");//登录失败手机号为空LoginFail.pPphoneNumberIsEmpty(chromeDriver,"123456");//登录失败密码错误LoginFail.pPpassWordIsError(chromeDriver,"15660880523","123456");chromeDriver.quit();}
}

七:遗留风险

高并发场景下性能风险:在本次测试中,模拟的并发用户数有限,未能充分覆盖实际业务中可能出现的高并发场景。当大量用户同时登录时,可能导致接口响应时间延长甚至出现系统崩溃的情况。目前无法确切评估系统在高并发下的性能表现,存在性能瓶颈风险

移动端适配风险:考虑到用户可能通过多种移动设备访问抽奖系统,不同移动设备的屏幕尺寸、操作系统版本及浏览器类型存在较大差异。在本次测试中,仅对部分主流移动设备进行了兼容性测试,对于一些小众或老旧设备,可能存在登录页面显示异常或接口无法正常调用的情况,影响移动端用户的登录体验

八:测试结果评估

功能测试结果

正常登录功能:在输入正确的用户名和密码后,能够成功登录系统,且登录后的页面跳转及用户权限验证均正常,测试通过。

错误用户名或密码登录:当输入错误的用户名或密码时,系统能够准确提示错误信息,如 “用户名或密码错误”,测试通过。

验证码验证功能:在登录过程中,输入正确的验证码能够正常登录,输入错误的验证码则提示 “验证码错误”,,测试通过。

共执行功能测试用例 [17] 个,其中通过 [17] 个,未通过 [0] 个,功能测试通过率为 [100]%。

总结

本次抽奖系统登录接口测试在功能、性能和安全性方面均取得了一定的成果。功能测试验证了接口的基本功能能够正常运行,性能测试发现了系统在高并发场景下的性能瓶颈,安全性测试未检测到常见的安全漏洞。总体而言,系统已具备一定的可用性,但仍存在一些需要改进和优化的地方。

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

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

相关文章

【蓝桥杯】每日练习 Day12 贡献法

前言 今天给大家带来两道贡献法的问题,先来讲一下什么是贡献法。 贡献法,与其说是一种算法,不如说是一种数学方法,是一种思维方式。 先来给大家举个例子,假设现在有个问题,需要你在一个只有小写字母的字…

文字也能生成视频?【蓝耘实践】:通义万相2.1文生视频

文字也能生成视频?【蓝耘实践】:通义万相2.1文生视频 上次我们已经介绍了关于在蓝耘云平台实践通义万相的基本玩法,这次将介绍进阶玩法,也就是使用文字来生成视频。 首先我们还是先注册或者登录蓝耘云平台。 通过蓝耘平台进入流…

ASP.NET Web的 Razor Pages应用,配置热重载,解决.NET Core MVC 页面在更改后不刷新

Razor Pages应用,修改页面查看修改效果,如果没有热重载,改一句话跑一次,这个活就没法干了。 1、VS2022中的NuGet中安装RuntimeCompilation Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 需要配套你的.net sdk版本&#x…

PhotoShop学习02

1.添加文本 这个工具栏是文字工具栏,快捷键是T。选择之后鼠标会变成一个竖杠外貌,我们可以借此在图片中写入文字。 选择后,上方的工具栏会变为专门调整文字工具 这个框点击旁边的小箭头可以选择我们我们电脑系统自带的字体,同时可…

BFS解决FloodFill算法

1.图像渲染 733. 图像渲染 - 力扣(LeetCode) 1.题目解析 有一幅以 m x n 的二维整数数组表示的图画 image ,其中 image[i][j] 表示该图画的像素值大小。你也被给予三个整数 sr , sc 和 color 。你应该从像素 image[sr][sc] 开始对图像进行…

OpenAI的“噩梦”,DeepSeek V3-0324效率革命展现中国AI雄心

3月24日晚,DeepSeek低调发布其V3模型的小版本更新——DeepSeek V3-0324,这一操作立即在社区引发热议。据悉,该版本已集成至DeepSeek官网、应用程序和小程序,用户只需关闭“Deep Thinking”功能即可体验。另该模型已在Hugging Face…

mysql创建库表插入数据演示

show databases; use zzj; create table stu (sid int primary key,name varchar(10) not null,sex varchar(2) );desc stu;insert into stu (sid, name, sex) values (1, zzj, 男);select * from stu; desc stu: select * from stu:

用SVG绕过浏览器XSS审计

[Translated From]&#xff1a;http://insert-script.blogspot.com/2014/02/svg-fun-time-firefox-svg-vector.html SVG - <use> element SVG中的<use>元素用于重用其他元素&#xff0c;主要用于联接<defs>和alike&#xff0c;而我们却用它来引用外部SVG文件…

简记_单片机硬件最小系统设计

以STM32为例&#xff1a; 一、电源 1.1、数字电源 IO电源&#xff1a;VDD、VSS&#xff1a;1.8~3.6V&#xff0c;常用3.3V&#xff0c;去耦电容1 x 10u N x 100n &#xff1b; 内核电源&#xff1a;内嵌的稳压器输出&#xff1a;1.2V&#xff0c;给内核、存储器、数字外设…

MySQL颠覆版系列————MySQL新特性(开启数据库的新纪元)下篇

文章目录 前言五、持久化全局变量5.1 持久化全局变量特点5.2 持久化全局变量实例5.3 持久化全局变量注意事项 六、降序索引&#xff08;Descending Indexes&#xff09;6.1 降序索引&#xff08;Descending Indexes&#xff09;特点6.2 降序索引&#xff08;Descending Indexes…

新书速览|OpenCV计算机视觉开发实践:基于Python

《OpenCV计算机视觉开发实践:基于Python》 本书内容 OpenCV是一个跨平台计算机视觉和机器学习软件库&#xff0c;也是计算机视觉领域的开发人员必须掌握的技术。《OpenCV计算机视觉开发实践:基于Python》基于Python 3.8全面系统地介绍OpenCV 4.10的使用&#xff0c;并配套示例…

PyTorch 深度学习实战(24):分层强化学习(HRL)

一、分层强化学习原理 1. 分层学习核心思想 分层强化学习&#xff08;Hierarchical Reinforcement Learning, HRL&#xff09;通过时间抽象和任务分解解决复杂长程任务。核心思想是&#xff1a; 对比维度传统强化学习分层强化学习策略结构单一策略直接输出动作高层策略选择选…

Spring Boot整合Spring Data JPA

Spring Data作为Spring全家桶中重要的一员&#xff0c;在Spring项目全球使用市场份额排名中多次居前位&#xff0c;而在Spring Data子项目的使用份额排名中&#xff0c;Spring Data JPA也一直名列前茅。Spring Boot为Spring Data JPA提供了启动器&#xff0c;使Spring Data JPA…

Oracle归档配置及检查

配置归档位置到 USE_DB_RECOVERY_FILE_DEST&#xff0c;并设置存储大小 startup mount; !mkdir /db/archivelog ALTER SYSTEM SET db_recovery_file_dest_size100G SCOPEBOTH; ALTER SYSTEM SET db_recovery_file_dest/db/archivelog SCOPEBOTH; ALTER SYSTEM SET log_archive…

Four.meme是什么,一篇文章读懂

一、什么是Four.meme&#xff1f; Four.meme 是一个运行在 BNB 链的去中心化平台旨在为 meme 代币供公平启动服务。它允许用户以极低的成本创建和推出 meme 代币&#xff0c;无需预售或团队分配&#xff0c;它消除了传统的预售、种子轮和团队分配&#xff0c;确保所有参与者有…

Java 集合 List、Set、Map 区别与应用

一、核心特性对比 二、底层实现与典型差异 ‌List‌ ‌ArrayList‌&#xff1a;动态数组结构&#xff0c;随机访问快&#xff08;O(1)&#xff09;&#xff0c;中间插入/删除效率低&#xff08;O(n)&#xff09;‌‌LinkedList‌&#xff1a;双向链表结构&#xff0c;头尾操作…

欢迎来到未来:探索 Dify 开源大语言模型应用开发平台

欢迎来到未来&#xff1a;探索 Dify 开源大语言模型应用开发平台 如果你对 AI 世界有所耳闻&#xff0c;那么你一定听说过大语言模型&#xff08;LLM&#xff09;。这些智能巨兽能够生成文本、回答问题、甚至编写代码&#xff01;但是&#xff0c;如何将它们变成真正的实用工具…

python多线程和多进程的区别有哪些

python多线程和多进程的区别有七种&#xff1a; 1、多线程可以共享全局变量&#xff0c;多进程不能。 2、多线程中&#xff0c;所有子线程的进程号相同&#xff1b;多进程中&#xff0c;不同的子进程进程号不同。 3、线程共享内存空间&#xff1b;进程的内存是独立的。 4、同一…

【MySQL报错】:Column count doesn’t match value count at row 1

MySQL报错&#xff1a;Column count doesn’t match value count at row 1 意思是存储的数据与数据库表的字段类型定义不相匹配. 由于类似 insert 语句中&#xff0c;前后列数不等造成的 主要有3个易错点&#xff1a; 要传入表中的字段数和values后面的值的个数不相等。 由于类…

PostgreSQL 连接数超限问题

目录标题 **PostgreSQL 连接数超限问题解决方案****一、错误原因分析****二、查看连接数与配置****三、排查连接泄漏&#xff08;应用侧问题&#xff09;****四、服务侧配置调整****1. 调整最大连接数****2. 释放无效连接&#xff08;谨慎操作&#xff09;****3. 使用连接池工具…