2023最全selenium面试题及答案,测试员没有碰到算我输.....

news2024/7/6 18:20:12

一、前言

Selenium,是一个开源的框架,主要用于做HTML页面的UI自动化测试。不过,selenium IDE在去年官方已宣告放弃维护了。官网上放着一句话,selenium IDE is Dead。Selenium IDE是火狐浏览器的一个插件,是Selenium的一个可视化编辑界面,支持直接录制脚本,然后转成其它的语言的脚本执行。不过,录制的脚本,里面有很多的废代码,一般我都不用录制的,都是直接写脚本的,所以对我的影响,并不大。

二、2023非常全的selenium面试题及参考答案
 

1 什么是Selenium?

Selenium就是一套专门用于自动化Web浏览器的工具。 而已! 你用这个东西来做什么完全取决于你。 主要是用于自动化Web应用程序进行测试,但肯定不仅限于此。 无聊的基于Web的管理任务也可以(也应该!)也是自动化的。
Selenium有一些最大的浏览器供应商的支持,他们已经采取(或正在采取)步骤使Selenium成为其浏览器的本地部分。 它也是无数其他浏览器自动化工具,API和框架的核心技术。
最新的Selenium版本已经是3.0(2016年10月13日正式release),但是因为是新技术,Selenium3.0的使用范围还不太广泛。变动的范围也不是很大,主要是更倾向于Webdriver,而更多的摒弃了RC。

2 什么是Selenium Webdriver

Webdriver (Selenium2)是一种用于Web应用程序的自动测试工具,它提供了一套友好的API,与Selenium 1(Selenium-RC)相比,Selenium 2的API更容易理解和使用,其可读性和可维护性也大大提高。Webdriver完全就是一套类库,不依赖于任何测试框架,除了必要的浏览器驱动,不需要启动其他进程或安装其他程序,也不必像Selenium 1那样需要先启动服务。
另外,二者所采用的技术方案也不同。Selenium 1是在浏览器中运行 JavaScript来进行测试,而Selenium 2则是通过原生浏览器支持或者浏览器扩展直接控制浏览器。
Selenium 2针对各个浏览器而开发的,它取代了嵌入到被测Web应用中的 JavaScript。与浏览器的紧密集成,支持创建更高级的测试,避免了JavaScript安全模型的限制。除了来自浏览器厂商的支持,Selenium 2 还利用操作系统级的调用模拟用户输入。

3 S什么是elenium IDE?

Selenium IDE是Selenium脚本的集成开发环境。 它被实现为Firefox扩展(插件),并允许您记录,编辑和调试测试。

4 常用自动化测试工具机器运行原理,写出一段元素查找的代码?

webdriver 原理:

l 每个Selenium 命令,这里指的是所谓的基础操作,例如,点击、输入等,都会创建一条 HTTP 请求, 发送给 Browser WebDriver

l Browser WebDriver 使用一个HTTP Server 监听和接收HTTP 请求

l HTTP Server 根据协议规则定义这些 Selenium 命令对应的浏览器具体操作

l 浏览器执行这些操作

l 浏览器将执行状态返回给HTTP Server

l HTTP Server 再将这些状态信息返回给自动化脚本

5 如何开展自动化测试框架的构建?

我们公司的自动化测试框架主要是有页面库,数据驱动,测试脚本,测试报告,持续集成这几个部分组成的。

页面对象库对自动化包括工具(selenium,appium)API 的二次封装,还有使用二次封装后的自动化工具类实现的页面元素封装(Page Object)然后会给封装好的页面设置一个统一入口类。这些之中会有一个页面元素文件专门存放元素的定位方法。

数据驱动部分主要是测试脚本中使用的数据文件(excel,yaml,txt)以及读取方法类,如果数据涉及到数据库,也会把对应的数据读取方法封装到这个部分。

测试脚本主要是通过 pytest 测试框架进行编写的,选择其的原因主要有其支持 assert 语句断言,适合复杂的功能测试,执行过程中可以自定义用例执行顺序和跳过以及预期,支持重复执行,还可兼容 unittest 编写的测试用例,最重要的是支持参数化和方便持续集成工具集成。

测试报告主要是通过 pytest 自动生成的Allure 报告,其可读性可生动的数据表图比 pytest 报告更能反应测试结果,也可以集成与 Jenkins 中。

持续集成方面主要是通过 Jenkins 进行实现的,目的在于测试脚本的无人值守执行以及自动生成测试报告,方便测试人员能够省出时间进行更多的功能测试和探索性测试。(通过设置几个 git,gitlab,mailer,allure, 等功能插件,配置 Allure 报告,默认邮件发送设置。用例脚本主要存放在 gitlab 用例库中,设置好轮询策略之后,配置报告发送的目标邮箱,就可以实现持续集成实践中的测试环节)

6 如何设计自动化测试用例:

l编写测试脚本之前要编写测试用例,而且测试用例不能直接使用手工测试的用例。

l自动化的测试用例是一个完整的场景。用户登录系统到用户退出。

l用例之验证一个功能点。不用试图登陆后验证所有的功能在退出

l测试用例尽量只做正向的逻辑验证。

l用例之间不要产生关联,相互独立,也要高内聚,低耦合

l测试用例关注的是功能逻辑的实现,字段无关

l测试用例的上下文必须有一定的顺序性,前置条件清晰

l检查点的设置要侧重,全面,灵活

l测试用例对数据的操作要进行还原

l测试用例必须是可回归的

l用例选择遵循成本始终,构建场景,目的冒烟回归,繁琐功能,主体流程

l用例转型遵循前置配置,抛异常,步骤验证,高内聚,关门归原

7 webdriver 如何开启和退出一个浏览器?

开启:dr = webdriver.浏览器类型() 关闭:dr.quit()

8 什么是自动化测试框架?

测试自动化框架是设置特定产品的自动化规则的集成系统。该系统集成了功能库,测试数据源,对象详细信息和各种可重复使用的模块。这些组件用作需要组装以代表业务流程的小型构建块。该框架为测试自动化提供了基础,并简化了自动化工作。

也是为自动化软件测试提供支持的假设框架,概念和工具的主要优点是维护成本低。如果任何测试用例发生变化,那么只需要更新测试用例文件,驱动程序脚本和启动脚本将保持不变。理想情况下,如果应用程序发生更改,则无需更新脚本。

选择正确的框架/脚本技术有助于降低成本。与测试脚本相关的成本是由于开发和维护工作。测试自动化期间使用的脚本的方法对成本有影响。

通常使用各种框架/脚本技术:

线性(程序代码,可能由使用记录和播放的工具生成)

结构化(使用控制结构 - 通常是“if-else”,“switch”,“for”,“while”条件/语句)

数据驱动(数据存储在数据库,电子表格或其他机制中,比如xml)

关键字驱动

行为驱动

混合(使用上述两种或更多种模式)

自动化测试框架主要负责:

定义表达期望的格式

创建一个挂钩或驱动被测应用程序的机制

执行测试

报告结果

9 Selenium是什么,流行的版本有哪些?

Selenium是基于Web的最流行的UI自动化测试工具。它提供了一组支持多种平台的公开API(例如Linux,Windows,Mac OS X等)。此外,像Google Chrome,Mozilla Firefox,Internet Explorer和Safari等所有现代浏览器都可以用来运行Selenium测试。它也涵盖了Android平台,其中Appium是实现Selenium Webdriver界面的工具,用于移动自动化。

值得注意的是,除了许多后来的小型版本之外,硒还有三个主要版本:

Selenium 1.0或Selenium RC,于2004年初发布,提供了一个使用服务器与浏览器交换命令和响应的API集。

Selenium 2.0或Selenium Webdriver,在2011年中推出,并在Selenium功能中引入了一系列重大改进。这些新的API完全取代了服务器组件,并与目标浏览器本地交互。

Selenium 3.0,这个版本是在2016年末发布的大版本。它带来的主要变化是引入Webdriver API的W3C规范,用于浏览器自动化。也就是说,每个主要的浏览器都会有自己的Webdriver API来实现功能。

10 你如何从命令行启动Selenium RC?

// 简单的启动Selenium RC的方法是

java -jar selenium-server.jar

// 在浏览器中运行一套Selenese脚本

java -jar selenium-server.jar -htmlSuite

11 在我的机器端口4444不是免费的。我怎样才能使用另一个端口?

//你可以在运行selenium服务器时指定端口为 -

Java -jar selenium-server.jar -port 5555

12 什么是Selenium Server,它与Selenium Hub有什么不同?

Selenium Server是使用单个服务器作为测试节点的一个独立的应用程序。Selenium hub代理一个或多个Selenium的节点实例。一个hub 和多个node被称为Selenium grid。运行SeleniumServer与在同一主机上用一个hub和单个节点创建de Selenium grid类似。

13 你如何从Selenium连接到数据库?

Selenium是一个Web UI自动化工具。它不提供任何API来建立数据库连接。这取决于你使用Selenium进行自动化的编程语言。在下面的例子中,我们假设正在使用Java。

一个Connection对象表示与数据库的连接。当我们使用连接方法连接到一个数据库时,我们创建了一个连接对象,它代表了与数据库的连接。单个数据库可能有一个连接或多个连接,还可能有多个连接到不同的数据库上。

我们可以使用Connection对象来做以下事情:

创建用于执行SQL语句的Statement,PreparedStatement和CallableStatement对象。

可以帮助我们提交或回滚一个JDBC事务。

如果你想知道连接到的数据库或数据源信息,Connection对象通过使用DatabaseMetaData就可以收集有关数据库或数据源的信息。

可以帮助我们关闭数据源。Connection.isClosed() 方法只有在调用了Connection.close()时才返回true 。此方法用于关闭所有连接。

首先我们需要通过使用
DriverManager.getConnection()方法,建立与数据库的连接。这个方法接受一个包含URL的字符串。DriverManager类尝试查找可以连接到由字符串URL表示的数据库的驱动程序。每当调用getConnection()方法时,DriverManager类都会检查可以连接到URL中指定的数据库的所有已注册的Driver类的列表。

语法:

String url = “jdbc: odbc: makeConnection”;

Connection con = DriverManager.getConnection(url, “userID”, “password”);

14 你如何验证多个页面上存在的一个对象?

可以使用下面的Selenium命令来检查:

assertTrue(selenium.isElementPresent(locator));

15 XPath中使用单斜杠和双斜杠有什么区别?

如果XPath是从文档节点开始,它将允许创建“绝对”路径表达式。

例如 “/ html / body / p”匹配所有的段落元素。

如果XPath在文档中的任意位置开始进行选择匹配,那么它将允许创建“相对”路径表达式。

例如 “// p”匹配所有的段落元素。

16 如何编写Selenium IDE / RC的用户扩展?

用户扩展(UX)存储在Selenium IDE或Selenium RC用来激活扩展的单独文件中。它包含用JavaScript编写的函数定义。

因为Selenium的核心是用JavaScript开发的,所以要符合原语言的标准规则来创建扩展。要创建一个扩展,我们必须用下面的设计格式来编写函数。

// 样例

Selenium.prototype.doFunctionName = function(){
}

函数名称前面的“do”告诉Selenium这个函数可以被调用为一个步骤命令,而不是作为内部函数或私有函数被调用。

17 如何在页面加载成功后验证元素的存在?

它可以通过下面的代码行来实现。

只需一点时间(以秒为单位)来检查元素,如下所示:
 

public void waitForElementPresent(String element, int timeout) throws Exception {
for (int second = 0;; second++) {
if (second >= timeout)
fail("Timeout. Unable to find the Specified element" + element);
try {
if (selenium.isElementPresent(element))
break;
} catch (Exception e) {
}
Thread.sleep(1000);
}
}

18 你对Selenium Grid有什么了解?它提供了什么功能?

Selenium Grid是一款利用现有计算基础架构大幅加速Web应用程序功能测试的工具。允许测试者轻松地在多台机器上并行运行多个测试,并且可以在异构环境中运行。

基于优秀的Selenium Web测试工具,Selenium Grid允许测试者并行运行多个Selenium Remote Control实例。更好的是,它集成显示所有Selenium远程控制,所以不必担心实际的基础设施。Selenium Grid将运行Selenium测试套件所需的时间,缩短到Selenium实例的单个实例运行时间的一小点。

19 如何从你的Java Class启动Selenium服务器?
 

try {
seleniumServer = new SeleniumServer();
seleniumServer.start();
} catch (Exception e) {
e.printStackTrace();
}

20 Selenium中有哪些验证点?

Selenium主要有三种验证点:

检查页面标题

检查某些文字

检查某些元素(文本框,下拉菜单,表等)

§

21 什么是XPath?什么时候应该在Selenium中使用XPath?

XPath是一种在HTML / XML文档中定位的方法,可用于识别网页中的元素。如果没有与页面上的元素相关联的名称/ ID,或者名称/ ID的一部分是常量,则必须使用XPath。

绝对路径用 - / 单斜杠

相对路径用 - // 双斜杠

ID,类,名称也可以用于XPath :

//input[@name=’q’]

//input[@id=’lst-ib’]

//input[@class=’ lst’]

如果id / name / class的一部分是常量 :

//input[contains(@id,’lst-ib’)

22 什么是Selenium的CSS定位器策略?用例子来解释。

CSS位置策略可以与Selenium一起使用来定位元素,它使用CSS定位方法,其中 -

绝对路径用 - (空格符号)

相对路径用 - >表示

ID,类,名称也可以用于XPath:

css=input[name=’q’]

css=input[id=’lst-ib’] or input#lst-ib

css=input[class=’lst’] or input.lst

如果id / name / class只有一部分是常量:

css=input[id*=’lst-ib’)]

使用内部文本的元素位置策略:

css = a:contains(‘log out’)

23 当有很多定位器时,如ID、名称、XPath、CSS定位器,我应该使用哪一个?

如果有唯一的名称或标识符可用,那么应该使用它们来代替XPath和CSS定位器。如果没有,那么CSS定位器应该被优先考虑,因为在大多数现代浏览器中,它们的评估速度比XPath更快。

24 在Selenium中处理多个弹出窗口的机制是什么?

可以使用命令getWindowHandles()来处理多个弹出窗口。

然后将所有窗口名称存储到Set变量中并将其转换为数组。

接下来,通过使用数组索引,导航到特定的窗口。

driver.switchTo().window(ArrayIndex);

25 你如何处理使用Selenium的Ajax控件?

来看一个例子。假如一个文本框是一个Ajax控件,当我们输入一些文本时,它会显示自动建议的值。

处理这样的控件,需要在文本框中输入值之后,捕获字符串中的所有建议值;然后,分割字符串,取值就好了。

26 Selenium Webdriver优于Selenium RC的优点是什么?

Selenium RC的架构相当复杂,WebDriver的架构比Selenium RC简单些。

Selenium RC比较慢,因为它使用了另外一个名为Selenium Core的JavaScript程序。相反,WebDriver比Selenium RC更快,因为它直接与浏览器对话,并使用浏览器自己的引擎来进行控制。

像其他JavaScript代码一样,Selenium Core可以访问禁用的元素。Webdriver以更现实的方式与页面元素进行交互。

Selenium RC的API集已经有所改进,但是仍有经常让人困惑的冗余部分。WebDriver API更简单,不包含任何冗余或混淆的命令。

Selenium RC无法支持无头HtmlUnit浏览器。它需要一个真正的、可见的浏览器来操作。Web Driver可以支持无头HtmlUnit浏览器。

Selenium RC内置了测试结果生成器,并自动生成测试结果的HTML文件。Web驱动程序没有自动生成测试结果文件的内置命令。

§

27 “GET”和“NAVIGATE”方法的主要区别是什么?

Get方法能获得一个页面进行加载、或获取页面源代码、或获取文本,就这三。而Navigate将通过刷新,回退,前进的方式导航。

例如 -如果我们想要前进,并做一些功能,并返回到主页。

这可以通过调用< navigate()>方法来实现。

driver.get() 方法会等到整个页面被加载后才可以,而driver.navigate()只是重定向到该网页,并不会等待。

28 隐式等待与显式等待有什么不同?

隐式等待是设置的全局等待,分为1、页面加载超时等待 ;2、页面元素加载超时;3、异步脚本超时。如果是页面元素超时,设置等待时间,是对页面中的所有元素设置加载时间。隐式等待是其实可以理解成在规定的时间范围内,浏览器在不停的刷新页面,直到找到相关元素或者时间结束。

显式等待只是用于特定搜索的一个计时器。它的可扩展性更强,你可以设置它来等待任何条件。通常情况下,可以使用一些预先构建的条件来等待元素变得可点击,可见,不可见等,或者只是编写适合需求的条件。

29 你将如何处理Selenium WebDriver中的警报/弹出窗口?

有两种类型的警报通常被引用。

基于Windows的警报弹出窗口

基于Web的警报弹出窗口

基于Web的警报弹出窗口。

WebDriver为用户提供了一种使用Alert界面处理这些弹出窗口的非常有效的方法。

void dismiss() - 一旦出现弹出窗口,dismiss()方法就会点击“Cancel”按钮。

void accept() - 只要弹出窗口出现,accept()方法就会点击“Ok”按钮。

String getText() - getText()方法返回警告框中显示的文本。

void sendKeys(String stringToSend) - sendKeys()方法将指定的字符串模式输入到警告框中。

基于Windows的警报弹出窗口。

处理基于windows的弹出窗口总是有点棘手,因为我们知道Selenium是一个自动化测试工具,它只支持Web应用程序测试,也就是说,它不支持基于Windows的应用程序,窗口警报就是其中之一。

Robot class是基于Java的实用程序,它模拟键盘和鼠标操作,并可以有效地用于处理基于windows的弹出与键盘事件的帮助。

KeyPress和KkeyRelease方法可以分别模拟用户按下和释放键盘上某个键的操作。

30 如何解决IE中的SSL认证问题?

// 打开浏览器后添加下面的命令

driver.navigate().to(“javascript:document.getElementById(‘overridelink’).click()”);

31 Selenium WebDriver中的可用定位器是什么?

ID,

Name,名称

CSS,

XPath,

Class name,

TagName,

LinkText, 链接文本

Partial Link Text.部分链接文本

32 如何处理WebDriver中的AJAX控件?

AJAX代表异步JavaScript和XML。它不依赖于创建有效的XML所需的打开和关闭标签的额外开销。大部分时间WebDriver自动处理Ajax控件和调用。如果不能处理的话,可以按照下面的方式来处理。

//Waiting for Ajax Control

WebElement AjaxElement = (new WebDriverWait(driver,

10)).until(ExpectedConditions.presenceOfElementLocated(By.(“”)));
 

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取  

 

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

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

相关文章

上午面了个腾讯拿 38K 出来的,让我见识到了基础的天花板

今年的校招基本已经进入大规模的开奖季了&#xff0c;很多小伙伴收获不错&#xff0c;拿到了心仪的 offer。 各大论坛和社区里也看见不少小伙伴慷慨地分享了常见的面试题和八股文&#xff0c;为此咱这里也统一做一次大整理和大归类&#xff0c;这也算是划重点了。 俗话说得好…

低功耗IC后端培训 | 盘点Power Switch Cell在实际项目中应用注意事项

下面直接进入今天的技术干货分享——全面盘点power gating cell在数字IC后端实现中的各种注意事项。 什么是Power Gating? 随着工艺制程越做越小和芯片规模越来越大&#xff0c;芯片的leakage的比重越来越高&#xff0c;数字后端实现时就得考虑leakage的优化。而leakage优化…

交通标志识别系统-卷积神经网络

介绍 使用Python作为主要开发语言&#xff0c;基于深度学习TensorFlow框架&#xff0c;搭建卷积神经网络算法。并通过对数据集进行训练&#xff0c;最后得到一个识别精度较高的模型。并基于Django框架&#xff0c;开发网页端操作平台&#xff0c;实现用户上传一张图片识别其名…

Linux 软件包管理工具

rpm命令管理软件包 1.学会看rpm包&#xff0c;通过rpm包的名字来了解这个软件包的一些基础信息xfsprogs-4.19.0-2.el8.x86_64.rpm xfsprogs 软件名字 4.19.0 版本号 2 发行次数 el8 适用于哪个操作系统&#xff08;rel8&#xff09; x86_64 软…

Streamlit应用程序使用Streamlit-Authenticator进行用户的安全身份验证实践(解决升级问题)

在Streamlit官方文档中&#xff0c;没有提供提供安全身份验证组件。目前&#xff0c;第三方streamlit-authenticator提供此功能&#xff0c;详见引用我原来的博文&#xff0c;在《Streamlit应用程序使用Streamlit-Authenticator进行用户的安全身份验证实践》文中&#xff0c;原…

Vue计算属性

1&#xff0c;为什么Vue会设计计算属性(computed property)&#xff1f; 答&#xff1a;一定程度上&#xff0c;Vue的作用就是管理呈现到HTML页面上的所有数据data的&#xff0c;每当一个data发生变化&#xff0c;Vue实例就会自动的去更新模板里面使用到data的地方&#xff0c;…

pytorch完整模型训练套路

文章目录 CIFAR10数据集简介训练模型套路1、准备数据集2、加载数据集3、搭建神经网络4、创建网络模型、定义损失函数、优化器5、训练网络6、测试数据集7、添加tensorboard8、转化为正确率9、保存模型 完整代码 本文以 CIFAR10数据集为例&#xff0c;介绍一个完整的模型训练套路…

机器学习-线性代数-向量、基底及向量空间

概述 文章目录 概述向量理解向量运算 基底与向量的坐标表示基底与向量的深入基底与向量选取与表示基底的特殊性张成空间 向量 理解 直观理解 行向量&#xff1a;把数字排成一行A [ 4 5 ] [4~ 5] [4 5]列向量&#xff1a;把数字排成一列A [ 4 5 ] \ \left [ \begin{matrix}…

多线性开发实例分享

一. 概述 首先&#xff0c;在这里有必要和大家复现一下我使用该技术的背景&#xff1a; 在使用若依框架的时候&#xff0c;由于实际开发的需要&#xff0c;我需要配置四个数据源&#xff0c;并且通过mapper轮流去查每个库的指定用户数据&#xff0c;从而去判断改库是否存在目标…

构建一个简易数据库-用C语言从头写一个sqlite的克隆 0.前言

英文源地址 一个数据库是如何工作的? 数据是以什么格式存储的(在内存以及在磁盘)?何时从内存中转移到此磁盘上?为什么每张表只能有一个主键?回滚一个事务是如何工作的?索引是以什么格式组织的?什么时候会发生全表扫描, 以及它是如何进行的?准备好的语句是以什么格式保…

#C2#S2.2~S2.3# 加入 factory/objection/virtual interface 机制

2.2 加入factory 机制 factory机制的实现被集成在了一个宏中&#xff1a;uvm_component_utils。这个宏所做的事情非常多&#xff0c;其中之一就是将my_driver登记在 UVM内部的一张表中&#xff0c;这张表是factory功能实现的基础。只要在定义一个新的类时使用这个宏&#xff0…

斐波那契数列相关简化4

看这篇文章前需要看下前面三篇文章&#xff0c;最起码第一第二篇是需要看一下的 斐波那契数列数列相关简化1_鱼跃鹰飞的博客-CSDN博客 斐波那契数列数列相关简化2_鱼跃鹰飞的博客-CSDN博客 算法玩的就是套路&#xff0c;练练就熟悉了 再来一个&#xff1a; 用1*2的瓷砖&am…

如何在 CentOS Linux 上安装和配置 DRBD?实现高可用性和数据冗余

DRBD&#xff08;Distributed Replicated Block Device&#xff09;是一种用于实现高可用性和数据冗余的开源技术。它允许在不同的服务器之间实时同步数据&#xff0c;以提供数据的冗余和容错能力。本文将详细介绍如何在 CentOS Linux 上安装和配置 DRBD。 1. 确认系统要求 在…

一文带你了解MySQL之InnoDB统计数据是如何收集的

前言 本文章收录在MySQL性能优化原理实战专栏&#xff0c;点击此处查看更多优质内容。 我们前边唠叨查询成本的时候经常用到一些统计数据&#xff0c;比如通过show table status可以看到关于表的统计数据&#xff0c;通过show index可以看到关于索引的统计数据&#xff0c;那…

MySQL之事务初步

0. 数据源 /*Navicat Premium Data TransferSource Server : localhost_3306Source Server Type : MySQLSource Server Version : 80016Source Host : localhost:3306Source Schema : tempdbTarget Server Type : MySQLTarget Server Version…

在线OJ常用输入规则

一、字符串输入规则 1.1 单行无空格字符串输入 输入连续字符串&#xff0c;cin默认空格/换行符为分割标志。 string s; //输入连续字符串&#xff0c;cin默认空格/换行符为分割标志。 cin >> s; 1.2 单行有空格字符串输入 getline函数接受带有空格的输入流&#xff…

C++——初识模板

文章目录 总述为什么要有模板函数模板概念函数模板使用方法函数模板的原理函数模板的实例化隐式示例化显式实例化 模板参数的匹配规则 类模板类模板的实例化 总述 本篇文章将带大家简单的了解一下c的模板方面的知识&#xff0c;带大家认识什么是模板&#xff0c;模板的作用&…

STL-常用算法(一.遍历 查找 排序)

目录 常用遍历算法&#xff1a; for_each和transform函数示例&#xff1a; 常用查找算法&#xff1a; find函数示例&#xff1a; find_if函数示例&#xff1a; adjacent_find示例&#xff1a; binary_search函数示例&#xff1a; count函数示例&#xff1a; count_if函…

训练/测试、过拟合问题

在机器学习中&#xff0c;我们创建模型来预测某些事件的结果&#xff0c;比如之前使用重量和发动机排量&#xff0c;预测了汽车的二氧化碳排放量 要衡量模型是否足够好&#xff0c;我们可以使用一种称为训练/测试的方法 训练/测试是一种测量模型准确性的方法 之所以称为训练…

springmvc升级到springboot2踩的坑

声明:删除springmvc的jar配置改成springboot的&#xff0c;若别的组件依赖springboot该升级就升级&#xff0c;该删掉就删掉&#xff0c;此文章只记录升级后的坑&#xff0c;升级springboot所需的jar请自行百度。 一.Hibernate的坑 概念:jpa和Hibernate的关系&#xff0c;jpa…