技术文章库 - 编程教程与技术分享平台


testng.xml 文件的用途是什么?

testng.xml文件有多种用途,如下所示−测试用例按组执行。测试方法可以在执行中包含或排除。可以触发来自多个Java类文件的多个测试用例的执行。包含文件夹、类和方法的名称。能够触发并行执行。属于组的测试方法可以在执行中包含或排除。示例TestNG.xmlfile<?xmlversion="1.0"encoding="UTF-

列出 TestNG 中可用的各种注解。

TestNG中可用的各种注解如下所示−@Test−用于在Java类文件中的每个测试方法之前运行。@BeforeSuite−用于在所有测试方法之前运行特定的测试方法。@AfterSuite−用于在所有测试方法之后运行特定的测试方法。@BeforeClass−用于在第一个测试方法之前仅运行一次特定的测试方法。@Afte

解释行为驱动框架。

行为驱动框架从项目中的所有利益相关者那里获取输入,如开发人员、测试人员、产品所有者、经理、客户和业务分析师。其目的是让项目的每个成员都具有相同的理解。行为驱动框架致力于团队中每个人之间的协作和协调。由于功能需求或规范是用非技术通用语言描述的,因此不需要技术编码知识。此规范可用作测试人员在设计自动化和手动测试人员的测试用例时的标准模板。可以轻松估计每个业务场景的测试覆盖率。此外,客户和开发人员的观点

陈述数据驱动和关键字驱动框架之间的差异。

下面描述了数据驱动和关键字驱动框架之间的差异。在数据驱动测试中,我们可以借助参数化以多种组合对多个数据运行测试。在这里,数据被视为测试脚本逻辑的输入。每个数据集都可以被视为一个单独的测试用例。在关键字驱动测试中,开发的关键字代表一个动作。按顺序维护的关键字列表形成一个测试用例。因此,一旦开发出一个关键字,就可以在多个测试脚本中使用。数据驱动框架围绕数据(在excel、csv或任何其他文件中维护

解释数据驱动框架。

数据驱动框架用于将测试脚本逻辑与测试数据分离。在此框架中,我们可以借助参数化使用多组数据以多种组合方式运行测试脚本。测试数据保存在单独的文件中,如excel、access、txt等。测试脚本需要连接到这些外部文件以获取数据。此框架的主要目的是针对各种数据集运行我们的测试脚本,从而减少测试用例的数量。数据驱动框架具有更多的测试覆盖率、可重用功能并且易于维护。只需修改测试数据即可触发测试执行。由于

解释关键字驱动框架。

关键字驱动框架也称为表驱动框架。这里有一个表格,我们描述了必须执行的方法的关键字或操作。自动化测试脚本是基于excel中提到的关键字或操作开发的。自动化测试人员需要通过更新或构建更新的关键字来扩展框架功能。从事手动测试且编程知识较少的人员可以使用此框架。主要思想是识别关键字或操作并在为特定测试场景维护的excel中使用它们。通常,此excel表会替代测试用例文档。但是,使用关键字构建或

在 JavaScript 中从字符串构造对象的代码

我们需要编写一个函数,该函数将字符串作为第一个也是唯一的参数,并根据字符串的唯一字符构造一个对象,其键为字符串,每个键的值默认为0。例如:如果输入字符串为−conststr='helloworld!';输出那么输出对象应该是−constobj={"h":0,"e":0,"l&qu

在 JavaScript 中查找数字的位值

我们需要编写一个函数,假设为splitNumber(),它接受一个正整数并返回一个包含该数字所有数字的位值的数组。例如−如果输入数字是−constnum=1234;输出那么输出应该是−constoutput=[1000,200,30,4];让我们为这个函数编写代码。这个问题非常适合使用递归方法,因为我们将对数字的每个数字进行迭代。因此,

在 JavaScript 中将数字四舍五入为最接近的幂

我们需要编写一个JavaScript函数,该函数接受一个数字并返回一个可以表示为最接近输入数字的2的幂的数字。例如:如果输入数字为145。则输出应为128,因为145是最接近128的数字,对于n的某个整数值,它可以表示为2^n。示例其代码为−constnum=145;constnearestPowerOfTwo=num=>{//仅处

使用 JavaScript 中的二分搜索来搜索查询

我们需要编写一个JavaScript函数,该函数将已排序的文字数组作为第一个参数,将查询文字作为第二个参数。然后我们的函数应该使用二分搜索算法来查找查询是否存在于数组中。如果存在,我们返回其在数组中的索引,否则我们返回-1。示例其代码为−constarr=[1,2,3,5,6,7,10,11,14,15,17,19,20,22,23];cons

用 JavaScript 计算数学方程的零点(解)

我们需要编写一个JavaScript函数,该函数接受三个数字(分别表示二次项的系数、一次项的系数和二次二次方程中的常数)。并且我们需要找到根(如果它们是实根),否则我们必须返回false。示例其代码为−constcoeff=[1,12,3];constfindRoots=co=>{const[a,b,c]=co;constdiscrim

在 JavaScript 中仅保留字符串中的冗余单词

我们需要编写一个JavaScript函数,该函数接受一个字符串并返回一个新字符串,该字符串仅包含原始字符串中出现多次的单词。例如:如果输入字符串是−conststr='thisisaisthisstringthatcontainsthatsomerepeatingwords';输出那么输出应该是−constoutput

在 Java 中将一个链表以交替位置合并到另一个链表中

我们给出了两个数据结构作为链表,假设为List_1和List_2。任务是将链表"List_2"的元素以交替位置合并到链表"List_1"中,如果剩下不能合并到"List_1"的元素,则将其打印为"List_2"剩余元素。例如-:In−List_1=List_2=Out−合并后的列表为:解释−我们有两个列表,即List_1和List_2。我们将

Java 字符串 substring() 方法示例。

String类的substring(intbeginIndex,intendIndex)方法。它返回一个新字符串,该字符串是当前字符串的子字符串。子字符串从指定的beginIndex开始,延伸到索引endIndex-1处的字符。因此,子字符串的长度为endIndex-beginIndex。示例importjava.lang.*;publicclassString

流畅等待执行什么操作?

流畅等待是一种动态等待,它使驱动程序暂停以在抛出异常之前以一定频率检查的条件。在DOM中搜索元素不是持续的,而是以固定的时间间隔搜索。例如,如果等待时间为5秒,FluentWait会定期监视DOM(通过在时间内轮询定义)。在FluentWait中,需要构建基于条件的自定义等待方法。语法−Wait<WebDriver>w=newFluentWait&

显式等待执行什么操作?

显式等待应用于网页中的特定元素。它将暂停执行,直到条件得到满足。显式等待也是动态的,因为如果等待时间为十五秒,并且在此指定时间之前满足条件(例如等待元素可点击、可见或可选等),则控件将移至下一步。显式等待更具可定制性,因为我们可以根据条件进行设置。下面列出了一些显式等待的预期条件−textToBePresentInElement()语法w.until(ExpectedConditio

隐式等待有何作用?

隐式等待是指我们执行过程中每个测试步骤的默认等待时间。因此,如果我们将隐式等待时间设置为10秒,则每个测试步骤都会等待该时间以执行操作,然后转至下一步。隐式等待是一种动态等待,这意味着如果等待时间为10秒,并且要执行下一步操作的Web元素在第五秒可用,则控制权将立即转至下一个测试步骤,而不是等待整整10秒。但是,如果该元素直到第十秒才可用,则会引发异常。隐式等待使用起来简单易行,但

get() 和 navigate() 方法之间有什么区别?

get()和navigate()方法之间的区别如下。sl.no.get()navigate()1它负责加载页面,并等待页面加载完成。它只负责重定向页面,然后立即返回。2它无法跟踪浏览器的历史记录。它跟踪浏览器历史记录,并且可以在浏览器中来回执行。示例Withget().importorg.openqa.selenium.By;importorg.openqa.selenium.Keys

findElement() 和 findElements() 方法之间有什么区别?

findElement()和findElements()方法尝试在DOM中搜索元素。它们之间的区别如下−sl.no.findElement()findElements()1返回第一个与定位器匹配的Web元素。返回所有与定位器匹配的Web元素。2语法−WebElementbutton=webdriver.findElement(By.name(&

如何使用xpath识别第n个子元素?

我们可以通过以下方式使用xpath识别第n个子元素−通过添加带有索引的方括号。通过使用xpath中的position()方法。示例importorg.openqa.selenium.By;importorg.openqa.selenium.Keys;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.Web