自动化测试面试题及答案大全三

自动化测试面试题及答案大全三

2023年6月29日发(作者:)

⾃动化测试⾯试题及答案⼤全三问题1:Selenium是什么,流⾏的版本有哪些?是⼀个开源的web⾃动化测试的框架,⽀持多种编程语⾔,⽀持跨浏览器平台进⾏测试。Selenium 1.0或Selenium RCSelenium 2.0或Selenium WebdriverSelenium 3.0问题2:你如何从命令⾏启动Selenium RC?java -jar // 在浏览器中运⾏⼀套Selenese脚本java -jar -htmlSuite问题3:在我的机器端⼝4444不是免费的。我怎样才能使⽤另⼀个端⼝?//你可以在运⾏selenium服务器时指定端⼝为 -Java -jar -port 5555问题4:什么是Selenium Server,它与Selenium Hub有什么不同?Selenium Server是使⽤单个服务器作为测试节点的⼀个独⽴的应⽤程序。 Selenium hub代理⼀个或多个Selenium的节点实例。⼀个hub 和多个node被称为Selenium grid。运⾏SeleniumServer与在同⼀主机上⽤⼀个hub和单个节点创建de Selenium grid类似。问题5:你如何从Selenium连接到数据库?Selenium是⼀个Web UI⾃动化⼯具。它不提供任何API来建⽴数据库连接。这取决于你使⽤Selenium进⾏⾃动化的编程语⾔。在下⾯的例⼦中,我们假设正在使⽤Java。⼀个Connection对象表⽰与数据库的连接。当我们使⽤连接⽅法连接到⼀个数据库时,我们创建了⼀个连接对象,它代表了与数据库的连接。单个数据库可能有⼀个连接或多个连接,还可能有多个连接到不同的数据库上。我们可以使⽤Connection对象来做以下事情:创建⽤于执⾏SQL语句的Statement,PreparedStatement和CallableStatement对象。可以帮助我们提交或回滚⼀个JDBC事务。如果你想知道连接到的数据库或数据源信息,Connection对象通过使⽤DatabaseMetaData就可以收集有关数据库或数据源的信息。可以帮助我们关闭数据源。ed() ⽅法只有在调⽤了()时才返回true 。此⽅法⽤于关闭所有连接。⾸先我们需要通过使⽤nection()⽅法,建⽴与数据库的连接。这个⽅法接受⼀个包含URL的字符串。DriverManager类尝试查找可以连接到由字符串URL表⽰的数据库的驱动程序。每当调⽤getConnection()⽅法时,DriverManager类都会检查可以连接到URL中指定的数据库的所有已注册的Driver类的列表。句法:String url = “jdbc: odbc: makeConnection”;Connection con = nection(url, “userID”, “password”);问题6:Selenium RC中定位器⽅法有哪些?ID Name CSS XPATH Dom问题7:你如何验证多个页⾯上存在的⼀个对象?可以使⽤下⾯的Selenium命令来检查:assertTrue(entPresent(locator));问题8:XPath中使⽤单斜杠和双斜杠有什么区别?如果XPath是从⽂档节点开始,它将允许创建“绝对”路径表达式。例如 “/ html / body / p”匹配所有的段落元素。如果XPath在⽂档中的任意位置开始进⾏选择匹配,那么它将允许创建“相对”路径表达式。例如 “// p”匹配所有的段落元素。问题9:如何编写Selenium IDE / RC的⽤户扩展?⽤户扩展(UX)存储在Selenium IDE或Selenium RC⽤来激活扩展的单独⽂件中。它包含⽤JavaScript编写的函数定义。因为Selenium的核⼼是⽤JavaScript开发的,所以要符合原语⾔的标准规则来创建扩展。要创建⼀个扩展,我们必须⽤下⾯的设计格式来编写函数。// 样例tionName = function(){}函数名称前⾯的“do”告诉Selenium这个函数可以被调⽤为⼀个步骤命令,⽽不是作为内部函数或私有函数被调⽤。问题10:如何在页⾯加载成功后验证元素的存在?它可以通过下⾯的代码⾏来实现。只需⼀点时间(以秒为单位)来检查元素,如下所⽰: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 (entPresent(element))break;} catch (Exception e) {}(1000);}}问题11:你对Selenium Grid有什么了解?它提供了什么功能?Selenium Grid是⼀款利⽤现有计算基础架构⼤幅加速Web应⽤程序功能测试的⼯具。允许测试者轻松地在多台机器上并⾏运⾏多个测试,并且可以在异构环境中运⾏。基于优秀的Selenium Web测试⼯具,Selenium Grid允许测试者并⾏运⾏多个Selenium Remote Control实例。更好的是,它集成显⽰所有Selenium远程控制,所以不必担⼼实际的基础设施。Selenium Grid将运⾏Selenium测试套件所需的时间,缩短到Selenium实例的单个实例运⾏时间的⼀⼩点。问题12:如何从你的Java Class启动Selenium服务器?try {seleniumServer = new SeleniumServer();();} catch (Exception e) {tackTrace();}问题13:Selenium中有哪些验证点?Selenium主要有三种验证点 -检查页⾯标题检查某些⽂字检查某些元素(⽂本框,下拉菜单,表等)问题14:什么是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’)问题15:什么是Selenium的CSS定位器策略?⽤例⼦来解释。CSS位置策略可以与Selenium⼀起使⽤来定位元素,它使⽤CSS定位⽅法,其中 -绝对路径⽤ - (空格符号)相对路径⽤ - >表⽰ID,类,名称也可以⽤于XPath:css=input[name=’q’]css=input[id=’lst-ib’] or input#lst-ibcss=input[class=’lst’] or 如果id / name / class只有⼀部分是常量:css=input[id*=’lst-ib’)]使⽤内部⽂本的元素位置策略:css = a:contains(‘log out’)问题17:在处理多个弹出窗⼝的机制是什么?可以使⽤命令getWindowHandles()来处理多个弹出窗⼝。然后将所有窗⼝名称存储到Set变量中并将其转换为数组。接下来,通过使⽤数组索引,导航到特定的窗⼝。To().window(ArrayIndex);问题18:你如何处理使⽤Selenium的Ajax控件?来看⼀个例⼦。假如⼀个⽂本框是⼀个Ajax控件,当我们输⼊⼀些⽂本时,它会显⽰⾃动建议的值。处理这样的控件,需要在⽂本框中输⼊值之后,捕获字符串中的所有建议值;然后,分割字符串,取值就好了。问题19: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驱动程序没有⾃动⽣成测试结果⽂件的内置命令。问题20:“GET”和“NAVIGATE”⽅法的主要区别是什么?Get⽅法能获得⼀个页⾯进⾏加载、或获取页⾯源代码、或获取⽂本,就这三。⽽Navigate将通过刷新,回退,前进的⽅式导航。Partial Link Text.部分链接⽂本这可以通过调⽤< navigate()>⽅法来实现。() ⽅法会等到整个页⾯被加载后才可以,⽽te()只是重定向到该⽹页,并不会等待。问题21:隐式等待与显式等待有什么不同?隐式等待是设置的全局等待,分为1、页⾯加载超时等待 ;2、页⾯元素加载超时;3、异步脚本超时。如果是页⾯元素超时,设置等待时间,是对页⾯中的所有元素设置加载时间。隐式等待是其实可以理解成在规定的时间范围内,浏览器在不停的刷新页⾯,直到找到相关元素或者时间结束。显式等待只是⽤于特定搜索的⼀个计时器。它的可扩展性更强,你可以设置它来等待任何条件。通常情况下,可以使⽤⼀些预先构建的条件来等待元素变得可点击,可见,不可见等,或者只是编写适合需求的条件。问题22:如何解决IE中的SSL认证问题?// 打开浏览器后添加下⾯的命令te().to(“javascript:mentById(‘overridelink’).click()”);问题23:如何处理WebDriver中的AJAX控件?AJAX代表异步JavaScript和XML。它不依赖于创建有效的XML所需的打开和关闭标签的额外开销。⼤部分时间WebDriver⾃动处理Ajax控件和调⽤。如果不能处理的话,可以按照下⾯的⽅式来处理。//Waiting for Ajax ControlWebElement AjaxElement = (new WebDriverWait(driver,10)).until(ceOfElementLocated(By.("")));问题24:如何在标题菜单的⼦菜单项上执⾏⿏标移动操作?应该⾸先移动菜单标题,然后移⾄弹出菜单项并单击它。不要忘记在最后调⽤m() 。问题25:什么是数据驱动框架?它与关键字驱动框架有什么不同?数据驱动框架。在这个框架中,测试⽤例逻辑驻留在测试脚本中。测试数据被分离并保存在测试脚本之外。测试数据是从外部⽂件(Excel⽂件)中读取的,并被加载到测试脚本中的变量中。变量⽤于输⼊值和验证值。关键字驱动。关键字/表驱动框架需要开发数据表和关键字。它们独⽴于执⾏它们的测试⾃动化⼯具。可以使⽤或不使⽤应⽤程序来设计测试。在关键字驱动的测试中,被测试的应⽤程序的功能记录在⼀个表格中,以及每个测试的分步说明。问题26:解释使⽤TestNG⽽不是JUnit框架的好处?TestNG相较于Junit的优势:在JUnit中,我们必须声明@BeforeClass和@AfterClass,这是JUnit中的⼀个约束,⽽在TestNG中没有像这样的约束。TestNG提供了更多的setUp / tearDown级别。1.@ Before/AfterSuite 2.@Before/AfterTest 3.@Before/AfterGroupTestNG中不需要扩展任何类。TestNG中没有⽅法名称约束,就像JUnit⼀样。在TestNG中,我们可以告诉测试⼀个⽅法依赖于另⼀个⽅法,⽽在JUnit中这是不可能的。测试⽤例的分组在TestNG中可⽤,⽽JUnit中则不可⽤。执⾏可以基于组完成。例如,如果你已经定义了许多案例,并通过将2个组分别定义为“离职“与”回归”隔离。如果你只是想执⾏“理智”的情况,那就告诉TestNG执⾏“理智”。TestNG将⾃动执⾏属于“离职”组的案例。另外,TestNG⽀持并⾏测试⽤例执⾏。问题27:与@Test注释相关的TestNG参数的⽬的是什么?在TestNG中,参数是修改注释功能的关键字。问题28:可以使⽤TestNG运⾏⼀组测试⽤例吗?

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688019640a67315.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信