准备WebUI自动化测试面试?这30个问题你必须掌握(二)

本文共有11000字,包含了后十五个问题,如需要前十五个问题,可查看文末链接~

16. 在WebUI自动化测试中,你如何处理验证码或图像识别的问题?

1. 人工识别:一种简单但费时费力的方法是使用人工手动识别验证码。测试人员可以手动输入验证码,将其作为测试的一部分,并验证这个过程是否正确。

2. 预置验证码:在某些情况下,测试环境中的验证码可以提前给定,以便测试脚本可以直接使用。测试人员可以手动或自动地预先获取验证码,并将其存储在一个可访问的位置,供自动化测试脚本使用。

3. 避免验证码:在某些情况下,可以通过与应用程序的所有者或开发人员进行协作,在测试环境中禁用或绕过验证码。这样可以简化测试过程,提高自动化测试的效率。

4. 覆盖测试:使用特定的测试技术,如图像处理和机器学习,可以尝试对验证码进行图像识别。这需要收集和训练大量的验证码样本,以准确地识别出验证码,然后将其应用于自动化测试中。

5. 代理工具:使用代理工具可以拦截和修改应用程序与验证码相关的通信。这样可以将验证码替换为固定值或预设值,以便自动化测试脚本继续执行。

17. 请解释一下什么是断言在WebUI自动化测试中的作用。

1. 验证功能是否正常:通过断言,可以验证应用程序的功能是否按预期工作。例如,在登录功能的测试中,可以使用断言来验证是否成功登录,并检查登录后的页面是否符合预期。

2. 确保页面显示正确内容:断言可以用来验证页面上的文本、图片、链接等是否显示正确。例如,可以使用断言来验证某个元素的文本内容是否与预期一致,或者验证某个图像是否成功加载。

3. 确认元素状态和属性:断言还可以用于验证元素的状态和属性是否符合预期。例如,可以使用断言来验证一个按钮是否可见、是否启用、是否具有特定的属性值等。

4. 验证表单数据:当进行表单提交测试时,断言可以用来验证表单数据的准确性。例如,可以使用断言来验证提交后数据库中的数据是否与提交的表单数据一致。

5. 检测错误和异常情况:断言可以用来检测错误和异常情况。例如,可以使用断言来验证是否出现了错误消息、警告弹窗或错误页面等。

18. 你是如何进行页面加载和性能测试在WebUI自动化测试中的?

1. 页面加载时间测量:在自动化测试脚本中,可以使用Selenium WebDriver的工具方法来测量页面加载时间。通过记录页面开始加载和完成加载的时间戳,可以计算页面加载所需的时间,并据此评估页面的性能。

2. 网络监控工具:使用一些网络监控工具,如Chrome开发者工具、Fiddler等,可以捕获和分析网络请求和响应。这可以帮助发现网络延迟、资源加载问题和性能瓶颈。

3. 性能测试工具:使用专门的性能测试工具,如Apache JMeter、LoadRunner等,可以模拟多用户访问和压力,并测量应用程序的性能指标。这些工具可以模拟实际用户行为,加载页面,执行操作,并提供详细的性能报告和分析。

4. 页面性能指标监测:通过监测页面的关键性能指标,如页面加载时间、资源加载时间、响应时间、首次渲染时间等,可以评估页面的性能。可以使用工具和库,如Google的PageSpeed Insights、Lighthouse等,来获取详细的性能指标和建议。

5. 数据库和服务器监测:除了前端性能,还可以监测后端系统的性能,如数据库响应时间、服务器资源利用率等。这可以通过与后端团队协作,使用合适的监测工具来实现。

6. 基准测试和负载测试:进行基准测试和负载测试,以评估应用程序在不同负载和压力条件下的性能表现。可以模拟多个用户同时访问应用程序,并记录响应时间、内存使用情况、服务器响应等,以找出性能瓶颈。

7. 分析和优化:通过监测和测量页面加载和性能指标,可以识别性能瓶颈和改进点。根据测试结果,对应用程序进行优化,如减少资源文件的大小、使用缓存、优化数据库查询等。

19. 你如何进行多浏览器测试在WebUI自动化测试中?

1. 平台和浏览器选择:首先,确定要支持的目标平台和浏览器。根据应用程序的受众和需求,选择需要测试的浏览器,如Chrome、Firefox、Safari、Edge等,并确定它们所在的平台,如Windows、macOS、Linux等。

2. Selenium WebDriver:Selenium WebDriver是一个功能强大的工具,可以与不同的浏览器进行集成。通过编写通用的自动化测试脚本,并使用适当的WebDriver进行初始化,可以在不同的浏览器上运行测试。

3. 驱动程序选择:根据所需的浏览器,选择相应的驱动程序。Selenium WebDriver支持不同浏览器的驱动程序,如ChromeDriver、GeckoDriver、SafariDriver等。确保使用与目标浏览器和操作系统版本兼容的驱动程序。

4. 参数化测试:使用参数化测试的概念,可以在测试脚本中设置不同的浏览器参数。这样,可以通过单个测试脚本同时运行多个浏览器的测试。常用的测试框架,如TestNG和JUnit,支持参数化测试。

5. 平台和版本管理:对于跨平台和版本管理,可以使用配置文件、环境变量或测试配置类来维护不同浏览器和版本的信息。这样,可以根据需要轻松切换和管理不同的浏览器配置。

6. 并发执行:使用并发执行的技术,可以在多个浏览器中同时执行测试。这可以提高测试效率,并帮助发现与并发性相关的问题和竞态条件。

7. 云测试平台:使用云测试平台,如Sauce Labs、BrowserStack等,可以在真实的浏览器和设备上执行自动化测试。这些平台提供了多浏览器和跨平台的测试环境,能够覆盖更多的浏览器和设备组合。

20. 如何处理异步请求在WebUI自动化测试中的问题?

1. 显式等待:在测试代码中使用显式等待机制,以等待异步请求的完成。通过等待预期的元素、文本或属性出现,或者等待Ajax加载符消失,可以确保测试不会过早地执行操作。

2. 隐式等待:设置全局的隐式等待来等待异步请求的完成。这样,对于每个查找和操作,测试脚本都会等待一段时间,直到元素可见或操作完成。在使用此方法时要小心,设置合理的超时时间,以防止测试在响应较慢的情况下等待过长的时间。

3. 操作链:使用操作链或动作链的模式来处理连续的异步请求。这种方式包括一系列的操作,每个操作都等待前一个操作的异步请求完成后才进行。这样可以保证操作的顺序和正确性。

4. Ajax完成检查:通过检查Ajax请求的状态和网络响应,可以判断异步请求是否已完成。可以使用Selenium WebDriver提供的方法来获取Ajax请求的状态码、响应文本等信息,并根据需要执行等待或处理操作。

5. JavaScript执行:通过执行JavaScript代码,可以检查和处理异步请求。可以使用JavaScript代码等待特定的事件或状态,或者通过注入适当的JavaScript代码来模拟异步请求的完成。

6. 模拟请求:对于特定的异步请求,可以使用模拟数据或模拟服务来处理。通过使用模拟库或工具,可以拦截异步请求,并提供预定义的响应,以减少对实际异步请求的依赖。

21. 如何设置和处理测试环境在WebUI自动化测试中?

1. 特定环境配置:根据测试需求,创建适当的环境配置文件或配置类。这些配置可以包括测试用的数据库、API密钥、测试用户等。通过配置文件,可以在不同环境中轻松切换,并使用适当的测试数据。

2. 测试数据库:为了避免对生产数据库造成干扰,可以使用一个专门的测试数据库。在每次测试执行前,可以清空或还原测试数据库的状态,以保持测试环境的一致性。

3. 数据准备和清理:在测试开始之前,确保测试环境中的数据处于一致的状态。可以在测试脚本中编写数据准备和清理的方法,以创建或删除测试数据。这样可以确保每次测试的起点和终点都是可控的。

4. 测试配置管理:通过使用配置管理工具,如环境变量或配置文件,可以轻松管理不同测试环境的设置。这些配置可以包括测试服务器的URL、登录凭据、浏览器驱动程序路径等。

5. 数据驱动测试:使用数据驱动测试的方法,可以根据不同的测试数据运行相同的测试脚本。这样,可以在不同的测试环境中验证应用程序的兼容性和一致性。

6. 并行执行:通过并行执行测试,可以在多个测试环境中同时运行测试。这样可以提高测试效率,并缩短整体测试时间。

7. 集成和持续集成环境:将自动化测试集成到持续集成(CI)环境中,可以自动化地设置和处理测试环境。通过自动化构建和部署流程,可以在每次构建时设置测试环境,并在测试完成后自动清理环境。

8. 版本管理和标签:使用版本管理工具,如Git,可以为不同版本的应用程序创建和维护不同的标签。这样,可以在不同的测试环境中使用适当的应用程序版本,以确保测试的一致性。

22. 如何处理弹出框或警告框在WebUI自动化测试中?

1.使用Selenium的Alert类:对于JavaScript警告框和确认框,Selenium提供了Alert类来处理。通过调用driver.switchTo().alert()方法,可以切换到当前的警告框上下文。然后,可以使用alert对象的方法,如accept()、dismiss()、getText()等,来接受、拒绝或获取警告框上的文本。

例如,要接受警告框上的消息,可以使用以下代码:

Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
System.out.println("Alert Text: " + alertText);
alert.accept();

2.使用Selenium的WebDriverWait:对于弹出框的出现和消失,可以使用WebDriverWait来等待。可以设置一个适当的超时时间,并使用ExpectedConditions类的方法,如alertIsPresent(),来等待弹出框的出现,然后执行相应的操作。

例如,等待并接受警告框的示例代码如下:

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.alertIsPresent());
Alert alert = driver.switchTo().alert();
alert.accept();

3.使用模态框的定位方式:对于模态框,可以使用Selenium的定位方式,如id、class、CSS选择器、XPath等来定位并操作模态框上的元素。首先,定位模态框的元素,然后执行相应的操作。

例如,使用id定位模态框并点击确定按钮的示例代码如下:

WebElement modal = driver.findElement(By.id("modalId"));
WebElement confirmButton = modal.findElement(By.id("confirmButtonId"));
confirmButton.click();

4.使用JavaScript调用:对于复杂的弹出框,可以通过执行JavaScript代码来处理。使用JavaScript可以模拟用户的操作并处理弹出框。可以使用JavascriptExecutor接口,通过executeScript()方法执行JavaScript代码。

例如,通过JavaScript点击模态框上的确定按钮的示例代码如下:

WebElement modal = driver.findElement(By.id("modalId"));
WebElement confirmButton = modal.findElement(By.id("confirmButtonId"));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click();", confirmButton);

请注意,在处理弹出框时,要确保弹出框已经完全加载或出现在DOM中。还要避免弹出框的多个定位问题,并处理弹出框的各种情况,如接受、拒绝、输入文本等。根据具体情况,选择适当的方法和技术来处理弹出框,并根据应用程序的需求进行相应的操作。

23. 在WebUI自动化测试中,你是如何设计和维护测试用例的?

1. 确定测试目标:明确测试的目标和目的。了解需求和预期的系统行为,以便为测试设计合适的用例。

2. 分析需求:仔细审查应用程序的相关需求文档,包括功能规格说明、用户故事等。理解应用程序的功能和业务流程,并将其转化为测试用例。

3. 确定测试边界和场景:基于需求和设计文档,确定需要涵盖的测试边界和场景。这包括正常场景、异常场景、边界值场景等。确保测试用例具有广泛的覆盖范围,以提高测试的准确性和全面性。

4. 编写测试用例:根据需求和边界情况,编写测试用例。测试用例应包括测试目标、预置条件、测试步骤、预期结果等。测试步骤应清晰、简洁,并针对特定的功能和场景。

5. 维护测试数据:确定测试用例所需的测试数据,并将其维护在测试数据集中。这些数据可以是各种输入、系统状态、用户配置等。确保测试数据的准确性和可重复性。

6. 设计可复用的测试步骤:将测试步骤抽象为可复用的方法或函数,以提高测试用例的可维护性和可重用性。通过使用测试框架和设计模式,可以更好地实现测试步骤的复用。

7. 定期回顾和更新:定期回顾和更新测试用例,以确保测试用例与应用程序的变化保持同步。根据需求变更、缺陷修复、新功能的添加等,对测试用例进行更新和维护。

8. 自动化执行:将测试用例自动化,并结合适当的自动化测试工具,在每次构建或回归测试中执行测试用例。自动化执行可以提高测试效率和一致性。

9. 整体测试策略:结合其他测试技术和方法,如边界值分析、等价类划分、冒烟测试等,将测试用例纳入整体的测试策略中。确保测试用例的完整性和有效性。

10. 持续优化:根据测试反馈、执行结果和测试覆盖的评估,持续优化测试用例。及时修复和补充测试用例,以更好地覆盖系统的不同功能和场景。

24. 请解释一下什么是持续集成和持续交付在WebUI自动化测试中的作用。

  1. 持续集成(Continuous Integration,CI):持续集成是指将开发人员的代码变更频繁地集成到共享的主干或主要开发分支中,并自动构建和测试代码的过程。在WebUI自动化测试中的作用如下:

    • 即时发现问题:由于代码的频繁集成和构建,可以快速发现与自动化测试相关的问题,如潜在的代码冲突、编译错误、测试失败等。
    • 提前反馈:通过持续集成,测试团队可以更早地获取应用程序的最新版本,并及时执行自动化测试,以提供对开发质量的反馈。这样可以更快地发现和修复问题,减少问题的传播和影响范围。
    • 快速反馈回环:持续集成可以配合自动化构建和测试工具,通过及时执行测试套件,提供快速的反馈回环。这有助于开发人员快速了解其代码更改的影响,并帮助团队持续改进和提高软件质量。
  2. 持续交付(Continuous Delivery,CD):持续交付是指在软件开发过程中,将软件的可发布版本交付给负责部署和发布的团队的能力。在WebUI自动化测试中的作用如下:

    • 自动化构建和部署:通过自动化构建和部署流程,可以实现Web应用程序的快速构建、测试和部署。这样可以大大缩短软件的交付时间,并减少人为错误和手动操作引入的问题。
    • 保证发布质量:通过持续交付,测试团队可以确保每个可发布版本都经过了自动化测试的验证。这样可以提高发布的质量,并降低发布带来的风险。
    • 持续改进:持续交付鼓励团队持续反思和改进发布过程,通过记录和分析发布反馈、用户反馈和监控数据来优化和优化软件质量。

25. 你是如何进行代码覆盖率和质量检查在WebUI自动化测试中?

  1. 代码覆盖率检查:

    • 使用覆盖率工具:使用工具(如JaCoCo、Istanbul等)来度量代码覆盖率。这些工具可以生成详细的报告,显示代码的行覆盖率、语句覆盖率、分支覆盖率等指标。
    • 自动化测试覆盖率:通过编写全面的自动化测试脚本,覆盖不同的功能和场景。确保自动化测试用例能够尽可能地覆盖代码的各个部分,并且能够触发所有可能的分支和路径。
  2. 静态代码质量检查:

    • 代码审查:进行代码审查,运用最佳实践和编码规范,以确保代码易读、可维护、可扩展。可以使用工具(如CodeReview、SonarQube等)来辅助代码审查和检测常见的代码缺陷。
    • 代码规范检查:使用工具(如Checkstyle、ESLint等)来检查代码是否符合指定的编码规范和风格。这些工具可以自动检测并报告代码中的不符合规范的部分,并提供修复建议。
  3. 自动化测试工具集成:

    • 结合自动化测试框架:在自动化测试框架中集成代码覆盖率和质量检查工具。这样可以在每次测试运行时,自动生成覆盖率报告和质量报告,并可与其他测试结果一并查看。
    • 持续集成工具集成:通过持续集成工具(如Jenkins、Travis CI等),配置构建任务来自动运行代码覆盖率和质量检查工具,并生成报告。这样可以在每次构建过程中及时检测代码的覆盖率和质量。
  4. 持续监控和反馈:

    • 自动化监控:设置持续监控机制,周期性运行代码覆盖率和质量检查,并将结果与既定阈值进行比较。如果覆盖率和质量检查不达标,触发相应的报警或警告,通知相关团队。
    • 实时反馈:在自动化测试过程中,即时收集并反馈代码覆盖率和质量检查的结果。可以在测试报告中包含代码覆盖率和质量检查的摘要信息,以便开发团队和测试团队随时了解代码的覆盖率和质量情况。

26. 如何进行跨平台和移动端测试在WebUI自动化测试中?

1.平台兼容性测试:

  • 测试环境设置:建立适合不同平台的测试环境,包括不同操作系统、浏览器和设备。确保测试环境与实际用户环境相符。
  • 平台覆盖:在测试用例中覆盖不同的平台组合。使用自动化测试工具(如Selenium、Appium等)进行多平台和多浏览器测试,并确保应用程序在各个平台上的兼容性。
  • 响应式设计测试:测试应用程序在不同屏幕尺寸和设备上的表现,包括桌面、平板和手机。验证应用程序的响应式设计和自适应布局。

2.移动端测试:

  • 移动设备测试:使用移动设备测试平台或云服务(如AWS Device Farm、Sauce Labs等)进行移动设备的测试。通过自动化测试工具和模拟器/真机,覆盖不同类型的移动设备和操作系统版本。
  • 手机和平板布局测试:测试应用程序在手机和平板上的布局和用户体验。验证页面元素在不同设备上的可用性、布局和呈现效果。
  • 多浏览器和操作系统测试:对于移动Web应用,确保在不同浏览器和操作系统上的兼容性。测试不同浏览器的支持程度,并验证应用程序在各个浏览器上的正确性和稳定性。

3.使用自动化测试工具:

  • Selenium:Selenium是一个广泛使用的自动化测试工具,支持跨平台和多浏览器测试。它可以用于自动化测试WebUI,并在不同的平台和浏览器上执行测试。
  • Appium:Appium是一个用于移动应用自动化测试的工具,支持多平台和跨浏览器测试。它通过使用WebDriver协议来自动化测试原生、混合和Web应用程序。

4.手机和平板测试技术:

  • 使用设备或模拟器:购买一些常见的移动设备,或者使用模拟器进行测试。确保在测试用例中覆盖不同的设备类型、操作系统版本和屏幕尺寸。
  • 使用移动测试平台:借助移动测试平台和云服务,可以快速地进行移动设备的兼容性测试。这些平台提供了广泛的真机设备和操作系统版本供测试使用。

27. 在WebUI自动化测试中,你是如何处理登录和会话管理的?

  1. 登录过程的自动化:

    • 准备测试数据: 在测试开始之前,准备好用于登录的测试数据,包括用户名、密码或其他验证凭据。这些数据可以通过配置文件、环境变量、数据库等方式进行管理。
    • 访问登录页: 使用自动化测试工具(如Selenium)导航到登录页面。根据Web应用的实际情况,输入用户名和密码,并点击登录按钮。
    • 验证登录状态: 验证登录是否成功。可以通过页面上的元素、URL、响应状态码等进行判断。如果登录失败,测试脚本可以抛出异常或记录错误信息。
  2. 会话管理:

    • 会话Cookie管理: 在登录成功后,Web应用程序通常会为会话分配一个唯一的会话标识符,通常存储在cookie中。可以使用自动化测试工具来获取和管理这些会话cookie,以便在后续的测试步骤中使用。
    • 会话注销/终止: 测试完成后,可以添加相应的逻辑来注销或终止会话。这可以通过访问特定的注销URL、点击注销按钮等方式完成,以确保测试结束时会话正确地终止。
  3. 保持会话状态:

    • 会话状态维护: 在一些情况下,测试需要保持会话状态,例如在不同的页面之间进行切换或执行多个连续的操作。通过在测试代码中保持会话cookie或其他会话标识符,可以确保测试能够在同一个会话状态下进行。
    • 访问受限页面: 在执行需要登录身份验证的测试用例时,确保访问受限页面之前已经完成了登录操作,并使用之前获取的会话cookie进行访问。

28. 你是如何进行回归测试在WebUI自动化测试中的?

1. 确定回归测试范围:根据变更的功能、修复的缺陷或其他需求,确定需要进行回归测试的功能模块和页面。

2. 创建回归测试套件:根据回归测试范围,创建一个包含相关测试用例的回归测试套件。这些测试用例应该覆盖主要功能点、关键路径和常见的使用情况。

3. 自动化回归测试脚本:使用自动化测试工具(如Selenium),编写或更新回归测试脚本。确保脚本能够正确地执行回归测试用例,并验证被修改或新增的功能的正确性。

4. 运行回归测试:使用自动化测试工具运行回归测试套件。可以将回归测试脚本集成到持续集成/持续交付(CI/CD)流程中,以便在每次代码提交或构建后自动运行回归测试。

5. 分析测试结果:分析回归测试的运行结果,检查是否有失败的测试用例。如果有失败的测试用例,需要识别根本原因并进行修复。

6. 故障跟踪和修复:对于回归测试中发现的缺陷,创建相应的故障报告,并将其分配给开发团队进行修复。跟踪和监控缺陷的修复进展。

7. 重复执行回归测试:一旦发现和修复了缺陷,重新执行回归测试,确保修复不会引入新的问题,并验证应用程序的整体稳定性和兼容性。

8. 常规回归测试:定期进行常规回归测试,无论是否有变更。这可以帮助捕捉因应用程序的其他部分或环境的变化而引入的潜在问题。

29. 如何处理多语言和本地化在WebUI自动化测试中的问题?

处理多语言和本地化在WebUI自动化测试中的问题需要考虑以下几个方面:

1. 多语言配置和测试数据:

  • 准备不同语言的测试数据:创建多语言测试数据集,包括各种语言的字符串、消息、标签、错误提示等。
  • 配置应用程序支持多语言:确保应用程序具有多语言支持能力,并可以根据浏览器或用户设置来正确显示所选语言。

2. 页面元素和文本验证:

  • 检查文本显示是否正确:使用自动化测试工具(如Selenium)来验证页面上的文本是否根据所选语言正确显示。通过查找页面元素并获取其文本内容进行断言和验证。
  • 校验本地化字符和格式:验证显示的日期、时间、货币符号、数字格式等是否与所选语言和区域设置相匹配。

3. 多语言元素定位:

  • 使用标识符而不是文本进行元素定位:为了避免测试用例在不同语言环境下的可移植性问题,建议使用标识符、CSS类名或其他属性进行元素定位,而不是仅依赖文本内容。
  • 本地化字符串的处理:对于包含动态文本内容的元素(例如通过国际化资源文件获取的字符串),使用方法来获取并比较字符串,而不是直接在测试用例中硬编码。

4. 多语言逻辑验证:

  • 验证语言切换功能: 如果应用程序具有语言切换功能,测试可以通过自动化脚本模拟不同语言的切换,并验证应用程序在切换后的行为和显示是否正确。

5. 本地化特定的测试情景:

  • 考虑特定的本地化测试需求:针对特定本地化需求的应用,考虑一些特殊测试场景,如文字超出界限、字符长度限制、输入验证等。

6. 多语言测试覆盖:

  • 提高测试覆盖率:确保测试用例在不同语言环境下得到覆盖。可以根据应用程序的受众群体和市场需求,选择合适的语言组合进行测试。

7. 国际化和本地化规范:

  • 遵循国际化和本地化最佳实践:了解和遵循国际化和本地化的最佳实践,以确保应用程序正确地支持不同语言和地区的用户体验。

30. 你认为WebUI自动化测试的未来发展方向是什么?

1. 更高级的自动化工具和框架:随着技术的不断发展,WebUI自动化测试工具和框架将变得更加高级和智能化。这些工具可能具备更好的元素定位方法、自动化脚本生成和维护、智能化的测试报告和结果分析等功能,以提高测试效率和准确性。

2. AI和机器学习的应用:AI和机器学习的发展在自动化测试领域具有潜力。通过利用AI算法和机器学习模型,可以自动学习和适应不同的Web应用程序,提高自动化测试的鲁棒性和适应性。

3. 增强的浏览器控制和仿真:WebUI自动化测试通常依赖于浏览器控制来模拟用户行为。未来,可能会出现更强大和高度仿真的浏览器控制工具,可以更准确地模拟用户行为,处理动态网页和复杂的前端技术。

4. 跨平台和移动端自动化:随着跨平台和移动应用的普及,WebUI自动化测试也会进一步扩展到这些领域。未来的发展可能会更加注重跨平台和移动端的自动化测试,以适应不同的移动设备和操作系统。

5. 连续集成和持续交付:随着技术开发的敏捷化、频繁的发布和交付,自动化测试在连续集成和持续交付过程中的作用将变得更加重要。未来的发展可能会集中于更好地集成自动化测试框架和工具,以实现更高效、快速和可靠的持续集成和持续交付。

准备WebUI自动化测试面试?这30个问题你必须掌握(一)_什么时候才能变强的博客-CSDN博客https://blog.csdn.net/qq_17496235/article/details/131817117?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22131817117%22%2C%22source%22%3A%22qq_17496235%22%7D

谈谈那些实习测试工程师应该掌握的基础知识(一)_什么时候才能变强的博客-CSDN博客icon-default.png?t=N6B9https://blog.csdn.net/qq_17496235/article/details/131839453 

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

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

相关文章

事件传播机制和事件委托

DOM事件流 DOM事件流(event flow )存在三个阶段:事件捕获阶段、处于目标阶段、事件冒泡阶段。事件捕获(event capturing):通俗的理解就是,当鼠标点击或者触发dom事件时,浏览器会从…

(学习笔记-TCP连接建立)TCP 为什么是三次握手?不是两次、四次?

常规回答:“因为三次握手才能保证双方具有接收和发送的能力” 原因一:避免历史连接 三次握手的首要原因是为了防止旧的重复连接初始化造成混乱。 假设:客户端先发送了SYN(seq90)报文,然后客户端宕机了,而且这个SYN报…

NOSQL简单实战

目录 实战一: 1、 string类型数据的命令操作: (1) 设置键值: (2) 读取键值: (3) 数值类型自增1: (4) 数值类型自减1&…

图像标注是什么?及其类型和应用

什么是图像标注? 图像标注是与您交互的许多人工智能产品的基础,并且是计算机视觉(CV)领域重要的过程之一。在图像标注过程中,数据标注员使用标签或元数据来标记AI模型学习识别的数据特征。然后,这些图像标…

Triton_server部署学习笔记

下载镜像 docker pill http://nvcr.io/nvidia/tritonserver:22.07-py3 docker run --gpus all -itd -p8000:8000 -p8001:8001 -p8002:8002 -v /home/ai-developer/server/docs/examples/model_repository/:/models nvcr.io/nvidia/tritonserver:22.07-py3 docker exec -it a5…

Spring+SpringMvc+Mybatis整合小Demo

原始方式整合SSM 不使用spring-mybatis包 项目内容 整合ssm完成对account表新增和查询的操作 项目大体结构 创建mavenWeb项目 pom文件中引入依赖 spring核心、aspectj(aop)、spring-jdbc(jdbcTemplate)、spring-tx(事务)、 数据源:mysql、c3p0、mybatis my…

vue2的 element 表格单元格合并

<template><div><el-table show-summary :summary-method"getSummaries" :span-method"objectSpanMethod" :data"tableData" row-key"id" ref"tableDom" border><el-table-column label"序号&quo…

【golang】12、gin 源码解析

文章目录 快速使用返回响应路由匹配pathqueryMultipart/Urlencoded Form 解析请求MultipartFrom MiddleWare github.com/gin-gonic/gin 是 golang 的 web 框架&#xff0c;其用字典树做路由匹配、支持中间件&#xff0c;本文介绍其源码实现。 快速使用 package mainimport (&…

ylb-接口6验证手机号是否注册

总览&#xff1a; 1、service处理 在api模块下service包&#xff0c;创建一个UserService接口&#xff1a;&#xff08;根据手机号查询数据queryByPhone(String phone)&#xff09; package com.bjpowernode.api.service;import com.bjpowernode.api.model.User; import co…

ASL/CS系列音视频转换方案芯片,Typec拓展坞方案芯片

音视频单转方案芯片&#xff1a; CS5565 Typec转HDMI 8K 60HZ转换方案 可替代RTD2173 PS196 CS5801 HDMI转eDP/DP方案 可替代LT6711 CS5212 DP转VGA转换方案 可PIN TO PIN 替代RTD2166 CS5211 E…

❤️创意网页:HTML5 Canvas技术实现绚丽多彩的烟花特效

✨博主&#xff1a;命运之光 &#x1f338;专栏&#xff1a;Python星辰秘典 &#x1f433;专栏&#xff1a;web开发&#xff08;简单好用又好看&#xff09; ❤️专栏&#xff1a;Java经典程序设计 ☀️博主的其他文章&#xff1a;点击进入博主的主页 前言&#xff1a;欢迎踏入…

【java】【基础2】程序流程控制

目录 一、最经典的三种执行顺序 二、分支结构 2.1 if 2.2 switch 2.3 if与switch区别 三、循环结构 3.1 for循环 3.2 while循环 3.3 do-while循环 3.4 三种循环区别 3.5 补充知识&#xff1a;死循环 3.6 补充知识&#xff1a;循环嵌套 四、跳转关键字&#xff1a;br…

Mysql如何查询出两个日期之间的所有日期?

问题&#xff1a; 有时我们在生成一些时间轴类似的数据时&#xff0c;要求数据库不管有没有指定天的数据&#xff0c;都要生成该时间节点&#xff0c;可用mysql.help_topic来解决此类问题&#xff0c;通过序列和日期函数相结合来满足我们的业务需求。 例如&#xff1a;查询20…

Web开发的富文本编辑器CKEditor介绍,Django有库ckeditor_uploader对它进行支持,django-ckeditor安装方法及使用注意事项

当需要在网页应用程序中提供富文本编辑功能时&#xff0c;CKEditor是一个流行的选择。CKEditor是一个开源的JavaScript富文本编辑器&#xff0c;它提供了强大的功能和用户友好的界面&#xff0c;使用户可以轻松创建和编辑格式化的文本内容。 以下是CKEditor的一些主要特性&…

rabbitMQ杂记

消息队列应用场景 消息队列中间件是分布式系统中重要的组件&#xff0c;主要解决应用耦合&#xff0c;异步消息&#xff0c;流量 削锋等问题实现高性能&#xff0c;高可用&#xff0c;可伸缩和最终一致性&#xff1a; 解耦&#xff1a; 异步&#xff1a; 削峰&#xff1a; 常…

3.12 Bootstrap 超大屏幕(Jumbotron)

文章目录 Bootstrap 超大屏幕&#xff08;Jumbotron&#xff09; Bootstrap 超大屏幕&#xff08;Jumbotron&#xff09; 下面将讲解 Bootstrap 支持的另一个特性&#xff0c;超大屏幕&#xff08;Jumbotron&#xff09;。顾名思义该组件可以增加标题的大小&#xff0c;并为登陆…

详解Windows安装分布式版本控制系统git

文章目录 前言下载安装相关链接 前言 git是一个分布式版本控制软件&#xff0c;最初由Linux创作者Linus Torvalds创作&#xff0c;并于2015年以GPL许可协议发布。git易于学习&#xff0c;占用空间小&#xff0c;性能却快如闪电&#xff0c;可以快速、 高效的管理从小到大的项目…

DeFi新篇章 | Sui上原生订单簿DeepBook正式上线

随着原生去中心化中央限价订单簿&#xff08; Central Limit Order Book&#xff0c;CLOB&#xff09;DeepBook的推出&#xff0c;Sui上的DeFi开启了新篇章。DeepBook由一群Sui贡献者共同构建&#xff0c;为新一代DeFi应用提供了一个稳定的流动性层。 通过DeepBook&#xff0c…

mac批量修改文件名为不同名字

mac批量修改文件名为不同名字怎么弄&#xff1f;很多小伙伴通过私信向我求助&#xff0c;用什么方法可以在mac电脑上批量修改文件名称&#xff0c;将大量文件修改成不同的名称。这可能是一项比较麻烦的操作&#xff0c;在电脑上进行过批量重命名的小伙伴都知道&#xff0c;一般…

Redis源码篇 - Reactor设计模式 和 Redis Reactor设计模式

Reactor &#xff1a;反应器模式或者应答者模式&#xff0c;它是一种基于事件驱动的设计模式。拥有一个或者多个输入源&#xff0c;通过反应器分发给多个worker线程处理&#xff0c;实现并发场景下事件处理。 此图网上找的&#xff0c;画的很好&#xff1a;