1、题目名称: 什么是页面对象模型?
岗位标签: 自动化测试
是否高频: 是
题目答案:
页面对象模型是一种前端自动化的设计模式,把一个页面中的所有的元素封装到一个对象中,测试流程调用页面对象成员来实现完整的业务场景,按页面封装的方式,提高了测试的可维护性,减少了代码冗余。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
2、题目名称: 如何设计客户端自动化测试框架,可以满足易配置,易维护,易添加的需求?
岗位标签: 自动化测试
是否高频: 是
题目答案:
分层设计模式可以满足易配置,易维护,易添加的需求,通常分为业务逻辑层,页面层和元素层,当页面或者业务流程发生变化时,只需要修改改层对应的数据或者步骤就可以。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
3、题目名称: 自动化测试一般在哪个阶段开始编写?通常用于哪些阶段的测试?
岗位标签: 自动化测试
是否高频: 是
题目答案:
在功能的主体已经完成,需求稳定之后就可以开始准备自动化测试的脚本,自动化测试可以用于日常版本迭代中做主要场景的回归测试,产品上线之后做线上回归测试,后续功能开发中对已有功能的回归测试等。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
4、题目名称: 客户端自动化测试中有主要有哪些问题可能影响稳定性?如何提高自动化测试的稳定性?
岗位标签: 自动化测试
是否高频: 是
题目答案:
页面元素或者业务逻辑发生变化,模拟的点击事件响应超时,页面加载超时,不可预知的警告弹窗等,可能影响客户端自动化测试的稳定性,解决办法一个是采用分层设计模型,快速更新变化页面元素或业务逻辑,设置测试重试来应对暂时的超时问题,同时在框架中引入监听类,对不可预知的弹窗进行处理。尽量减少用例之间的耦合度,对于元素的定位,使用相对路径和id类不容易变化的定位符。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
5、题目名称: 服务器自动化测试中有主要有哪些问题可能影响稳定性?如何提高自动化测试的稳定性?
岗位标签: 自动化测试
是否高频: 是
题目答案:
服务器端影响自动化测试稳定性的主要问题是不在预期内服务中断或报错,网络问题导致的访问超时等,应对方法主要是重试机制,请求处理失败时允许再尝试几次,另外需要适当的差错处理机制,使得某个用例失败时不影响后续用例的执行。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
6、题目名称: 如何衡量自动化测试的投入产出?
岗位标签: 自动化测试
是否高频: 是
题目答案:
衡量自动化测试主要有两个指标,一个是效率,即自动化测试能够替代多少手工测试用例,这些手工测试用例通常需要执行多少轮,每一轮可以节省多少手工执行的时间,一共可以带来多少效率的提升,另一个是质量,即自动化测试定期执行之后能发现多少问题,有哪些是手工测试发现不了,哪些是手工测试能发现但是自动化测试没有发现的,综合评估自动化测试的效果。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
7、题目名称: 客户端自动化测试中有哪些常见的问题导致元素无法定位?如何解决?
岗位标签: 自动化测试
是否高频: 是
题目答案:
1.页面加载元素过慢,加等待时间;
2.页面有frame框架页,需要先跳转入frame框架再定位;
3.可能该元素是动态元素,定位方式要优化,可以使用部分元素定位或通过父节点或兄弟节点定位;
4.可能识别了元素,但是不能操作,比如元素不可用,不可写等。需要使用js先把前置的操作完成。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
8、题目名称: 客户端自动化测试中如何处理多个窗口切换?
岗位标签: 自动化测试
是否高频: 是
题目答案:
多窗口跳转处理在客户端自动化测试中很常见,我们通常:1.页面跳转之前使用driver.current_window_handle获得当前窗口句柄;2.跳转之后通过driver.window_handles获得所有窗口的句柄;3.循环找到新窗口的句柄,再通过driver.switch_to.window()方法跳转到新的窗口。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
9、题目名称: 所有的测试都可以自动化吗?哪些测试不适合做自动化?
岗位标签: 自动化测试
是否高频: 是
题目答案:
不是所有的项目都适合做自动化,下面几种情形不适合做自动化:1. 项目周期很短的项目;2. 业务规则复杂的对象;3.美观、声音、易用性测试;4.测试很少运行;5.软件不稳定;6.涉及物理交互。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
10、题目名称: 什么是testng?它有哪些优点?
岗位标签: 自动化测试
是否高频: 是
题目答案:
testng是一套用来在自动化测试代码中管理用例组织、运行和配置的工具,它的优点是:1.允许并行执行;2.可以定义用例之间的依赖关系;3.可以给用例分配优先级;4.允许测试用例的分组;5.提供用例的参数化配置;6.支持多种断言;7.提供详尽的html测试报告。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
11、题目名称: testng中支持哪些常用的标注?
岗位标签: 自动化测试
是否高频: 是
题目答案:
@BeforeTest/@AfterTest/@BeforeClass/@AfterClass/@BeforeMethod/@AfterMethod/@BeforeSuite/@AfterSuite/@BeforeGroups/@AfterGroups/@Test,实际面试中需要对这些标注的作用有基本的了解。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
12、题目名称: testng.xml文件的作用是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
testng.xml文件中包含了对整个测试执行的配置,包括执行哪些测试集合,集合中指定哪些类,类中指定哪些方法将被执行,定义并行执行的配置,同时还定义了执行的顺序和依赖关系。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
13、题目名称: 通过testng.xml给测试用例传递参数是如何实现的?
岗位标签: 自动化测试
是否高频: 是
题目答案:
1.在testng.xml中定义一个参数,比如:<parameter name=""browser"" value=""firefox""/>;2.在测试用例上方添加@Parameters(""browser"")标注,引入参数;3.在用例的输入参数中指定参数String browse,该参数即可在方法中使用,读取的值是testng.xml中定义的值。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
14、题目名称: 什么是testng断言?请列举常见的testng断言。
岗位标签: 自动化测试
是否高频: 是
题目答案:
断言用于帮助测试过程中判断测试继续进行的条件是否满足,只有当测试用例结束没有任何异常抛出的时候才认为该测试成功了。常见的testng断言包括:assertEqual(String actual,String expected)/assertEqual(String actual,String expected, String message)/assertEquals(boolean actual,boolean expected)/assertTrue(condition)/assertTrue(condition, message)/assertFalse(condition)/assertFalse(condition, message)。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
15、题目名称: 什么是testng的hard assert? 如何实现?
岗位标签: 自动化测试
是否高频: 是
题目答案:
testng中的断言默认都是hard assert,即当断言失败的时候抛出异常并且结束测试用例的执行。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
16、题目名称: 什么是testng的soft assert? 如何实现?
岗位标签: 自动化测试
是否高频: 是
题目答案:
soft assert断言不会抛出异常如果断言失败,而是会继续执行下一步,testng默认不包含soft assert,如果需要的话,要包含包org.testng.asserts.SoftAssert并在测试用例中创建SoftAssert实例,再调用SoftAssert中的断言方法。soft assert通常用于有多个验证点,其中一些失败的情况下继续执行以记录整体情况。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
17、题目名称: testng中如何支持异常测试?
岗位标签: 自动化测试
是否高频: 是
题目答案:
testng支持跟踪代码的异常处理,可以检查代码是否抛出了期望的异常。具体的实现方式是在@Test标注之后加上expectedExceptions属性,列举期望抛出的异常类型,比如@Test ( expectedExceptions = { IOException.class, NullPointerException.class } )。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
18、题目名称: testng中如何设置测试用例的优先级?
岗位标签: 自动化测试
是否高频: 是
题目答案:
testng通过priority属性支持用例的优先级设置。具体的实现方式是在@Test标注之后加上priority属性,设置用例的优先级,比如@Test(priority=0),如果没有设置优先级,则默认用例按照字母顺序执行。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
19、题目名称: testng中传递参数的两种主要方法是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
1.通过testng.xml定义的变量和值来传递;2.使用DataProvider类,由它传递需要的参数,两者都可以允许使用不同的数据来重复执行测试用例。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
20、题目名称: DataProvider是怎样传递参数的?
岗位标签: 自动化测试
是否高频: 是
题目答案:
首先定义DataProvider类,该类中声明声明数组,在测试用例中,通过DataProvider标注传入类名即可使用类中声明的数组作为参数。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
21、题目名称 :testng中如何创建分组?举个例子。
岗位标签: 自动化测试
是否高频: 是
题目答案:
testng中通过groups标签来划分测试分组,groups也可以包含其他分组,比如下面这个例子,创建了一个名叫'all'的分组,包含smokeTest和functionalTest。
<groups>
<define name=""all"">
<include name=""smokeTest""/>
<include name=""functionalTest""/>
</define>
<run>
<include name=""all"" />
</run>
</groups>
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
22、题目名称: testng中如何在用例层面标注分组?
岗位标签: 自动化测试
是否高频: 是
题目答案:
testng中使用groups属性来给用例分组,比如下面这个例子,测试用例同时属于smokeTest和functionalTest两个分组:
@Test (groups = { ""smokeTest"", ""functionalTest"" })
public void loginTest(){
System.out.println(""Logged in successfully"");
}
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
23、题目名称: testng中如何并行执行测试用例?它支持哪些级别的并行执行?
岗位标签: 自动化测试
是否高频: 是
题目答案:
testng使用parallel属性支持并行执行,支持四个层面的并行执行:全体<test>标签下的用例,某个java类下的全部测试用例,所有带@Test标注的方法,同一个实例下的全部用例。例如:<suite name=""softwaretestingmaterial"" parallel=""methods"">支持softwaretestingmaterial集合下的所有测试方法并行执行。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
24、题目名称: 如何指定某个或某些测试方法不执行?
岗位标签: 自动化测试
是否高频: 是
题目答案:
通过在testng.xml添加exclude标签来排除某个或某些测试方法,比如下面这个例子中,TestMethodNameToExclude不会被执行:
<classes>
<class name=""TestCaseName"">
<methods>
<exclude name=""TestMethodNameToExclude""/>
</methods>
</class>
</classes>
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
25、题目名称: 如何从用例层面使得一个用例不被执行?
岗位标签: 自动化测试
是否高频: 是
题目答案:
用例层面可以使用enabled = false来使得该用例不被执行,即@Test(enabled = false)。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
26、题目名称: 用例层面如何执行部分测试在某个点提前结束?
岗位标签: 自动化测试
是否高频: 是
题目答案:
可以在用例中间抛出SkipException()异常,该异常抛出之后的语句不会被执行,会直接执行下一个测试方法,这种方式通常用于用例的某些部分还没有准备好被执行的时候。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
27、题目名称: testng如何声明测试的依赖关系?
岗位标签: 自动化测试
是否高频: 是
题目答案:
testng支持在测试用例代码中声明依赖关系,主要通过在@Test标注之后添加两种属性:dependsOnMethods和dependsOnGroups,该用例在依赖的方法或者组执行完成之后才会被执行。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
28、题目名称: testng有哪些方式产生测试报告?
岗位标签: 自动化测试
是否高频: 是
题目答案:
testng有两种方式产生报告:1.Listeners类实时监听测试开始,通过,失败事件;2.Reporters类监听所有测试集合执行完毕事件,接收关于整个测试的对象列表。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
29、题目名称: testng如何在testng.xml中声明包含某个关键字的测试用例?
岗位标签: 自动化测试
是否高频: 是
题目答案:
testng.xml中使用通配符来查找所有含有某个关键字的测试用例,比如下面的例子会包含所有含有关键字smoke的测试用例:
<methods>
<include name="".*smoke.*""/>
</methods>
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
30、题目名称: testng中指定的测试集合或者测试用例的时间单位是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
testng中指定的测试集合或者测试用例的时间单位是毫秒。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
31、题目名称: 执行testng测试集合有哪些途径?
岗位标签: 自动化测试
是否高频: 是
题目答案:
testng测试集合可以通过eclipse/intellj IDE, ant构建工具,命令行等方式运行。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
32、题目名称: testng测试集合如何通过命令行执行?
岗位标签: 自动化测试
是否高频: 是
题目答案:
命令行执行testng的步骤:1.进入工程目录;2.设置classpath包含工程目录及bin目录;3.执行java org.testng.TestNG …./testng.xml命令运行测试集合。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
33、题目名称: testng中invocationcount属性的作用是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
invocationcount用来告知testng某个测试方法需要执行几遍,例如@Test(invocationCount = 10)是指该方法需要执行十遍。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
34、题目名称: testng中threadpoolsize属性的作用是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
threadpoolsize通常和invocationcount一起使用,告诉testng通过多线程执行该测试方法,比如@Test(threadPoolSize = 3, invocationCount = 10)即通过3个线程将测试方法执行10遍。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
35、题目名称: testng中timeout属性的作用是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
timeout属性定义一个测试用例最长可以执行的时间,对于多线程多次执行的测试用例,每个线程的执行都不能超过这个时间,也就是任何线程都不会永远阻塞。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
36、题目名称: testng中的@Factory注解的作用是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
@Factory注解告知testng,每次使用不同的数据集测试某个类的所有测试方法,每次执行使用该类的不同实例。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
37、题目名称: 简单介绍一下selenium
岗位标签: 自动化测试
是否高频: 是
题目答案:
selenium是一个开源的网页自动化测试工具,支持不同平台上的不同浏览器自动化测试,现有的主流浏览器大部分已经将selenium集成到他们的浏览器中,它同时是很多其他web自动化测试工具的核心技术。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
38、题目名称: selenium包含哪些组件?
岗位标签: 自动化测试
是否高频: 是
题目答案:
selenium主要包含四个组件:Selenium集成开发环境(IDE)/Selenium远程控制(RC)/WebDriver/Selenium Grid,其中RC和WebDriver在2018年合并到了一个框架中,即Selenium2.0.。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
39、题目名称:简单介绍一下webdriver
岗位标签: 自动化测试
是否高频: 是
题目答案:
WebDriver是一套远程控制接口,它提供了支持多个平台和语言的实现,从而让程序能够远程的控制浏览器的行为。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
40、题目名称: webdriver有哪些实现?
岗位标签: 自动化测试
是否高频: 是
题目答案:
针对不同的浏览器,webdriver有以下实现:ChromeDriver/EventFiringWebDriver/FirefoxDriver/HtmlUnitDriver/InternetExplorerDriver/PhantomJSDriver/RemoteWebDriver/SafariDriver
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
41、题目名称: 最新的selenium webdriver的版本是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
最新的版本是selenium 4,它完全遵循w3c标准,因此浏览器驱动可以与几乎所有的主流浏览器通过标准w3c协议进行交互。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识面
· 考察知识的深度
· 常识性问题
42、题目名称: selenium 4有哪些显著的特点?
岗位标签: 自动化测试
是否高频: 是
题目答案:
1.Selenium Grid – Selenium server一旦启动,grid可以同时充当hub和节点;2.元素级别的截图;3.在微软edge浏览器上支持chronium driver;4.支持相对定位.
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
43、题目名称: selenium 4的相对定位符指的是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
相对定位符查找元素支持以下通过相对位置查找元素的方法:1.toLeftOf() : 位于某个元素左侧的元素;2.toRightOf() : 位于某个元素右侧的元素;3.above() : 位于某个元素上方的元素;4.below() : 位于某个元素下方的元素;5.near() :位于某个元素附近最多50个像素距离的元素(50可以调整)。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
44、题目名称: Selenium WebDriver有哪几种等待waits?
岗位标签: 自动化测试
是否高频: 是
题目答案:
WebDriver中有三种等待:1.Implicit Waits告诉webdriver在尝试定位任何元素之前等待的时间,一般建议使用另外两种等待.2.Explicit Waits每隔500毫秒检查一下条件是否满足,直到超时,该条件可以是元素可见,存在在页面等,比如:WebElement dynamicElement = (new WebDriverWait(driver, 10)).until(ExpectedConditions.presenceOfElementLocated(By.id(""dynamicElement"")));.3.Fluent Wait可以定义重试的频率,等待总时长,忽略的异常等,比如:Wait<WebDriver> wait = new FluentWait<WebDriver>(driver).withTimeout(30, SECONDS).pollingEvery(5, SECONDS).ignoring(NoSuchElementException.class)。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
45、题目名称: WebDriver.findElement和WebElement.findElement的差别是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
WebDriver.findElement()从整个页面查找符合定位符的元素,而WebElement.findElement()首先创建一个WebElement对象,然后查找它的所有子元素。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
46、题目名称: 自动化测试框架有哪些设计模式?
岗位标签: 自动化测试
是否高频: 是
题目答案:
页面对象模型模式(POM)/工厂模式/外观模型/策略模型。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
47、题目名称: Selenium支持哪些定位符?
岗位标签: 自动化测试
是否高频: 是
题目答案:
Selenium支持以下定位符:ID/Name/CSS Selector/XPath/Class名称/Tag/LinkText/Partial Link Text。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
48、题目名称: Xpath和CSS Selector的差别?
岗位标签: 自动化测试
是否高频: 是
题目答案:
Xpath比CSS Selector要慢,Xpath支持文本搜索而CSS Selector不支持;Xpath支持索引而CSS Selector不支持;Xpath支持双向遍历,即从父节点到子节点或者从子节点到父节点的遍历,但是CSS Selector只支持从父节点到子节点的遍历。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
49、题目名称: 怎样用CSS selector访问第n个子节点?
岗位标签: 自动化测试
是否高频: 是
题目答案:
以一个CSS selector的例子为例: tr:nth-child(2)用来选择第二个tr元素。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
50、题目名称: Selenium WebDriver中有哪些异常类型?
岗位标签: 自动化测试
是否高频: 是
题目答案:
Selenium WebDriver中有以下常见异常类型:WebDriverException/NoSuchElementException/NoSuchFrameException/NoAlertPresentException/NoSuchWindowException/ElementNotVisibleException/ElementNotInteractableException/SessionNotCreatedException/TimeoutException/InvalidSelectorException/IllegalStateException/StaleElementReferenceException
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
51、题目名称: selenium中如何处理StaleElementReferenceException?
岗位标签: 自动化测试
是否高频: 是
题目答案:
StaleElementReferenceException异常抛出表明尝试寻找的元素在当前dom中不再存在,解决办法是在测试中加入对该异常的处理,异常发生时尝试等待500毫秒然后重试,直到找到该元素或者达到最大尝试数量。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
52、题目名称: 有哪些常见的自动化测试框架架构?
岗位标签: 自动化测试
是否高频: 是
题目答案:
数据驱动/关键字驱动/行为驱动/混合测试框架。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
53、题目名称: Selenium断言的类型有哪些?
岗位标签: 自动化测试
是否高频: 是
题目答案:
断言作用等于检查点,验证在某个点是否满足某些条件,主要有三种类型的断言:Assert, Verify, WaitFor
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
54、题目名称: Selenium的局限有哪些?
岗位标签: 自动化测试
是否高频: 是
题目答案:
Selenium存在以下局限:1.只支持基于web的应用;2.不支持比特图比对;3.需要第三方工具支持报告;4.相比其他企业工具只有最小的技术支持;5.在Selenium中维护对象是个挑战;6.不支持验证码和条形码的测试。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
55、题目名称: Assert和verify的区别是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
Assert检查的条件如果不满足,后续的测试步骤不会被执行,Verify不关心验证的结果,测试会一直被执行到结束。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
56、题目名称: 什么是同源准则?它如何影响selenium?
岗位标签: 自动化测试
是否高频: 是
题目答案:
同源准则限制从不同的源来请求文档的DOM,这里的源指的是主机地址,端口和体系。Selenium Core遵循同源准则,不允许非同源访问,Selenium Remote Control解决了同源访问的问题。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
57、题目名称: 什么是对象库(object repository)? 如何创建一个对象库?
岗位标签: 自动化测试
是否高频: 是
题目答案:
对象库指的是待测应用的web元素及其定位符集合,不同于在测试脚本中直接hardcode定位符,对象库把所有的页面元素集中在一个地方管理,在Selenium中,元素及其定位符通常同意存放在excel文件中,这个excel文件就可以被看作一个对象库。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
58、题目名称: 如何判断一个元素可以在页面上操作?
岗位标签: 自动化测试
是否高频: 是
题目答案:
selenium可以用isDisplayed(),isEnabled(),isSelected()来判断该元素是否可以被操作,例如:boolean buttonPresence = driver.findElement(By.id(“some id”)).isDisplayed()判断元素是否显示;boolean searchIconEnabled = driver.findElement(By.id(“some id”)).isEnabled()判断元素是可以操作的;boolean buttonSelected = driver.findElement(By.id(“some id”)).isSelected()判断元素当前被选中。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
59、题目名称: driver.quit()和driver.close()的差别是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
close()方法关闭当前访问的窗口,既不需要参数也没有返回值;quit() 方法关闭程序打开的所有窗口并退出程序,和close()类似的是,它也既不需要参数也没有返回值。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
60、题目名称: xpath中的单斜杠/和双斜杠的区别是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
单斜杠/用于创建绝对路径,双斜杠//用于创建相对路径。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
61、题目名称: 什么是appium?
岗位标签: 自动化测试
是否高频: 是
题目答案:
Appium是一套开源自动化测试框架,同时支持iOS和安卓平台。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
62、题目名称: appium有哪些优点?
岗位标签: 自动化测试
是否高频: 是
题目答案:
1.跨平台;2.给不同平台提供统一接口;3.支持多种语言;4.基于SeleniumWebdriver协议;5.不需要在手机上安装额外的组件就可以使用;6.同时支持原生/混合/web应用。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
63、题目名称: appium有哪些局限?
岗位标签: 自动化测试
是否高频: 是
题目答案:
1.指令需要被翻译成机器识别的命令然后才被执行,影响了部分性能;2.对低于android OS 4.2的机器不支持。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
64、题目名称: 原生/混合/web移动应用分别指什么应用?
岗位标签: 自动化测试
是否高频: 是
题目答案:
原生应用专为某个平台开发比如安卓或者iOS,混合应用除了贴近各自平台的部分,还包括web页面或组件,这些页面或组件可以嵌入到不同平台的应用中,web应用即浏览器上的应用。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
65、题目名称: 使用appium之前需要安装哪些软件?
岗位标签: 自动化测试
是否高频: 是
题目答案:
对于安卓和iOS分别需要安装Android Studio及XCUI; NodeJS;不同语言需要的开发组件和运行环境,比如JDK/JRE.
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
66、题目名称: 简单介绍一下appium的基础架构
岗位标签: 自动化测试
是否高频: 是
题目答案:
Appium工具的核心是三个组件:1.Appium Server-监听Appium客户端并将指令翻译成机器能够执行的命令发送出去;2.Appium客户端暴露给不同语言的开发接口;3.Appium driver支持不同终端平台的自动化.
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
67、题目名称: appium和selenium的区别
岗位标签: 自动化测试
是否高频: 是
题目答案:
Selenium主要支持pc端浏览器的自动化测试,appium主要支持移动设备上的应用和浏览器测试。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
68、题目名称: 编写appium测试的基本步骤
岗位标签: 自动化测试
是否高频: 是
题目答案:
1.确定编写脚本的语言;2.确定用于测试管理的框架比如testng;3.引入appium client库;4.初始化driver和desired capabilities;5.查找元素定位符;6.编写并执行测试用例。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
69、题目名称: 执行appium测试需要填写哪些必须的Desired Capabilities?
岗位标签: 自动化测试
是否高频: 是
题目答案:
appium sever初始化时至少需要传入三个必须的Desired Capabilities:deviceName-用于标识执行用例的移动设备;platformName-移动设备的os,比如android或者ios;app-移动应用的路径。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
70、题目名称: 什么是Appium Inspector?
岗位标签: 自动化测试
是否高频: 是
题目答案:
Appium Inspector是appium提供的用来查看元素定位符的工具,通常用来作为自动化测试的重要辅助工具。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
71、题目名称: appium中有哪些常用的定位符?
岗位标签: 自动化测试
是否高频: 是
题目答案:
ID/name/className/accesibilityID/XPath
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
72、题目名称 :findElement和findElements的作用和差别
岗位标签: 自动化测试
是否高频: 是
题目答案:
FindElement用来查找某个具体的元素,如果没有找到会抛出异常,FindElements用来检查某些元素是否存在,如果不存在则返回一个大小为0的数组,不会抛出异常。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
73、题目名称: appium是否支持滑动操作?如何做到的?
岗位标签: 自动化测试
是否高频: 是
题目答案:
appium通过TouchAction Apl来执行滑动操作,比如:TouchAction myAction = new TouchAction((MobileDriver)driver); ... myAction.press(coordX,startY).waitAction(3000).moveTo(coordX,endY).release().perform();支持垂直方向的滑动。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
74、题目名称: 编写appium测试用例容易犯的错误有哪些?
岗位标签: 自动化测试
是否高频: 是
题目答案:
1.过于依赖xpath而导致对ui变动敏感;2.不能很好使用Accessibility ID进行定位;3.查询每个元素是否可见,严重降低了脚本性能。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
75、题目名称: appium常见异常及抛出条件
岗位标签: 自动化测试
是否高频: 是
题目答案:
SessionNotFoundException-appium连接断开或者无法建立session时抛出;ElementNotFoundException-元素未能找到;WebDriverException-driver不存在或运行异常时抛出。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
76、题目名称: 执行appium测试时需要在项目路径下有.apk文件吗?
岗位标签: 自动化测试
是否高频: 是
题目答案:
不需要,appium执行测试时,只需要待测移动设备上装有apk即可。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
77、题目名称: appium中怎样隐藏键盘
岗位标签: 自动化测试
是否高频: 是
题目答案:
Appium可以在Desired Capabilities里定义隐藏键盘的属性在整个测试过程中不显示键盘,比如: capabilities.setCapability(""unicodeKeyboard"", true);
capabilities.setCapability(""resetKeyboard"", true);也可以调用Driver.hide_keyboard()在测试中隐藏键盘。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
78、题目名称: appium中怎样拷贝粘贴?
岗位标签: 自动化测试
是否高频: 是
题目答案:
Appium通过粘贴板实现拷贝粘贴的功能,比如:driver.setClipboardText(""hello clipboard "")把需要拷贝的内容放到粘贴板,然后通过:driver.getClipboardText() 获取粘贴板内容。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
79、题目名称: appium安卓应用的重置策略是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
默认测试结束后停止应用,清理应用数据,不卸载应用包,如果fullReset设为true,则测试结束后停止应用,清理应用数据,卸载应用包,noReset设为true则不停止应用,不清理应用数据,不卸载应用包。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
80、题目名称: appium iOS应用的重置策略是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
默认测试完成后关闭模拟器。不销毁模拟器。不从真机上卸载应用。如果fullReset设为true,则测试完成后卸载应用, 模拟器测试结束后销毁模拟器。noReset设为true则测试结束后不销毁或者关闭模拟器。启动测试运行在任意正在运行的模拟器或者插入的真机。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
81、题目名称: 什么是接口测试?
岗位标签: 自动化测试
是否高频: 是
题目答案:
api测试是用来验证接口功能,可靠性和安全性的测试,通常的api测试包括:功能校验,安全性测试,负载测试,渗透测试,运行时错误检测和交互性测试等。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
82、题目名称: 接口测试有哪些好处?
岗位标签: 自动化测试
是否高频: 是
题目答案:
1. api测试可以没有ui的情况下访问应用,可以在ui测试之前提前发现问题;2.api代码更少时间开销更少,因此比ui测试效率更高;3.api的数据传输使用xml或者json,这些文件都是与开发语言无关的,因此可以使用任何语言开发api测试;4.API测试可以很容易和ui测试集成。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
83、题目名称: 接口测试可以使用哪些工具?
岗位标签: 自动化测试
是否高频: 是
题目答案:
有Katalon Studio, Postman, SoapUi Pro, Tricentis Tosca和Apigee等现成的接口测试工具,也可以通过python的request包,java的httprequest以及shell的curl命令来访问api,自己编写框架实现api测试。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
84、题目名称: 接口测试的主要难点有哪些?
岗位标签: 自动化测试
是否高频: 是
题目答案:
参数的选择与组合,api调用的顺序,不同系统间的调用和相互依赖等
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
85、题目名称: 接口和web服务的差别是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
web service必须通过网络访问,可以是用soap, rest或者是xml-rpc通信,api有更多的访问方式,不一定需要通过网络访问,也就是api不一定需要暴露url。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
86、题目名称: 什么是soap?
岗位标签: 自动化测试
是否高频: 是
题目答案:
soap即简单对象访问协议,是基于xml的消息传递协议,soap api可以用来创建/查找/删除/更新记录.
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
87、题目名称: 什么是REST API?
岗位标签: 自动化测试
是否高频: 是
题目答案:
REST是Representational State Transfer的缩写,是一套使用http协议发送和接收消息的函数,REST是无状态的,在服务器端没有状态或者session数据,通常使用GET请求访问资源。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
88、题目名称: SOAP和REST的区别是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
SOAP和REST主要有三点不同:1. soap支持两台机器之间通过xml通信,不一定通过网络传输,而rest是基于网络传输的软件架构;2.soap只支持xml文件格式,rest支持更多不同数据格式;3.soap不支持缓存而rest支持。另外,soap是一种协议而rest是一套架构模式。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
89、题目名称: 什么情况下应该选择soap而不是rest?
岗位标签: 自动化测试
是否高频: 是
题目答案:
当对服务的访问有更高级别的安全和可靠性考虑时,优先使用soap。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
90、题目名称: 搭建api测试环境的难点有哪些?
岗位标签: 自动化测试
是否高频: 是
题目答案:
1.需要在没有ui的情况下配置服务和数据库,因此需要对服务本身和整体架构有较深的理解;2.服务之间存在耦合的情况下,下游服务的稳定性会影响上游服务的测试;3.下游服务开发不同步或者不可用时需要打桩模拟;4.服务的访问权限控制需要更多配置来支持测试。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
91、题目名称: api测试中通常包含哪些测试?
岗位标签: 自动化测试
是否高频: 是
题目答案:
1.对于不同输入的响应内容;2.修改服务数据时验证系统认证和校验;3.是否存在api的交叉调用;4.无返回值时验证服务的行为是否正确。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
92、题目名称: api测试中通常验证哪些内容?
岗位标签: 自动化测试
是否高频: 是
题目答案:
返回数据的准确性/http状态码/响应时间/错误码/鉴权认证/性能/安全性等。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
93、题目名称: API测试通常参照什么编写?API文档应该包含哪些内容?
岗位标签: 自动化测试
是否高频: 是
题目答案:
api测试用例通常参照api文档编写,API文档至少应该包括:函数描述,可能出现的类型或语法错误消息,参数说明(类型,描述,顺序),相关函数的链接,返回值描述及类型。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
94、题目名称: API测试能帮助找出哪些问题?
岗位标签: 自动化测试
是否高频: 是
题目答案:
api测试可以找出服务中可能存在的以下方面问题:压力/性能/安全性/重复或者遗漏的功能/可靠性/错误处理正确性/多线程问题等。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
95、题目名称: api测试和单元测试有何不同?
岗位标签: 自动化测试
是否高频: 是
题目答案:
1.api测试是黑盒测试,单元测试是白盒;2.api测试在开发完成后执行,单元测试在开发过程中执行;3.api测试包含性能/功能/安全性/可靠性等测试,而单元测试只验证基本功能;4.api测试由测试人员完成,单元测试由开发完成。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
96、题目名称: REST支持哪些http协议?
岗位标签: 自动化测试
是否高频: 是
题目答案:
POST/PUT/DELETE/OPTIONS/HEAD.
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
97、题目名称: GET和POST请求的区别是什么?什么情况下使用POST?
岗位标签: 自动化测试
是否高频: 是
题目答案:
GET通常用于请求数据,GET请求可以被缓存,会存在于浏览历史中并且有长度限制,不能用GET处理敏感数据,POST请求不会被缓存,可以用于处理敏感数据,创建更新服务资源。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
98、题目名称: 移动端的接口自动化与web端有何不同?
岗位标签: 自动化测试
是否高频: 是
题目答案:
移动端的接口测试比web端需要更多的参数,一是需要带上version/productid等参数信息,因为可能会有新旧版本兼容等问题,不同版本可能会出现返回不一样的情况;二是需要有 client 信息,Android/iPhone/iPad,一般可以提取成环境变量单独存放。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
99、题目名称: 请列举使用linux时常用的shell命令
岗位标签: 自动化测试
是否高频: 是
题目答案:
ls/cd/mkdir/rmdir/cp/rm/mv/more/touch/cat/compress/date/diff/find/finger/who/grep/kill/man/passwd/pwd/ps/wc/chmod/gzip/gunzip/history/uname/tty/sort/head/tail
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
100、题目名称: Shell有几种类型?Unix系统支持多少类型?
岗位标签: 自动化测试
是否高频: 是
题目答案:
shell支持bourne shell(sh), c shell(csh), korn shell (ksh),Bourne again shell(bash), unix默认都支持。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
101、题目名称: c shell比bsh多提供哪些功能?
岗位标签: 自动化测试
是否高频: 是
题目答案:
1.csh运行给命令取别名,简化常用命令的键入;2.csh提供命令历史功能,可以简化命令的重复输入。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
102、题目名称: 什么时候需要使用shell脚本?
岗位标签: 自动化测试
是否高频: 是
题目答案:
1.当任务比较复杂涉及的指令比较多时;2.需要提高效率,减少重复键入;3.需要使用很多不同的软件工具时。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
103、题目名称: 一个文件刚刚创建的时候默认的权限是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
666也就是rw-rw-rw-是文件创建的时候默认的权限。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
104、题目名称: shell中如何声明常量/变量/赋值?
岗位标签: 自动化测试
是否高频: 是
题目答案:
shell中使用类似'a=10'的语句直接声明变量并给它赋值,'readonly a'把a声明为一个常量,unset a清空a的值。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
105、题目名称: shell脚本中变量的生命周期
岗位标签: 自动化测试
是否高频: 是
题目答案:
shell中声明的变量直到脚本执行结束一直有效。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
106、题目名称: 文件权限中的r/w/x分别表示什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
分别代表读/写/可执行的权限,如rwx表示文件可读可写可执行。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
107、题目名称:如何查看当前所在的shell?
岗位标签: 自动化测试
是否高频: 是
题目答案:
echo $SHELL.
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
108、题目名称: shell脚本中的#!作用
岗位标签: 自动化测试
是否高频: 是
题目答案:
#!读作shebang,用来告知系统该shell脚本应该使用哪一种shell,比如#!/bin/bash,表示该脚本应该在bash中执行。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
109、题目名称: awk是什么?常用的awk变量$0,$1,$2表示什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
awk是linux自带的数据处理工具,$0-表示整行,$1便士第一列上的数据,$2表示第二列的数据。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
110、题目名称: 如何串行执行多个shell脚本?
岗位标签: 自动化测试
是否高频: 是
题目答案:
和一般的unix命令一样,多个shell脚本也可以通过在脚本之间用分号间隔来顺序执行。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
111、题目名称: 什么是cronjob? 如何使用cronjob创建一个定时任务?
岗位标签: 自动化测试
是否高频: 是
题目答案:
cronjob是linux系统中安排定时任务的指令。'crontab -l'查看当前已有的cronjob,'cronjob-e'创建cronjob,基本格式是'* * * * * COMMAND',其中command是待执行的任务,前面的星依次定义分/小时/天/月/年/周对应的定期设置。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
112、题目名称: 查看硬盘使用情况的命令有哪些?
岗位标签: 自动化测试
是否高频: 是
题目答案:
df-查看系统可用存储空间;du-查看当前文件夹的磁盘使用情况;dfspace-以mb为单位查看可用磁盘空间。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
113、题目名称: 如何找到给定路径下包含某个关键字的所有文件?
岗位标签: 自动化测试
是否高频: 是
题目答案:
grep ./* keyword'查找当前路径下所有包含keyword的文件。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 常识性问题
114、题目名称: 什么是jenkins?它的主要作用是什么?
岗位标签: 自动化测试
是否高频: 是
题目答案:
jenkins是一套开源持续集成工具,主要用于系统版本控制,监控软件构件并提供通知和报告,使用jenkins可以集成很多测试和部署技术来发布软件。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
115、题目名称: 简述使用jenkins的好处
岗位标签: 自动化测试
是否高频: 是
题目答案:
1.对于不同操作系统都提供了构建安装包;2.可以把独立的小项目集成到整体构建;3.保持各个团队之间的同步;4.可以轻松的追溯和定位历史任务;5.给项目管理提供了精准的数据支持。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
116、题目名称: 什么是持续集成?
岗位标签: 自动化测试
是否高频: 是
题目答案:
持续集成是一套在版本控制系统中持续检查代码质量的流程,可以定制成每天固定的构建次数,也可以每次变更自动触发构建。持续集成包括:构建和编译,数据库集成,单元测试,自动部署,功能测试,生成和分析报告等。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
117、题目名称: 使用jenkins有哪些前提条件
岗位标签: 自动化测试
是否高频: 是
题目答案:
1.可以访问的代码库,比如git库;2.代码库中包含构建脚本,比如maven脚本。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
118、题目名称: jenkins有哪些常用的插件?
岗位标签: 自动化测试
是否高频: 是
题目答案:
Maven2项目插件/Amazon EC2/HTML publisher/Copy artifact/Join/Green Balls/Git插件/docker插件/多任务插件mutil job/测试结果分析插件Test Results Analyzer/统计插件Metrics.
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
119、题目名称: 如何安装jenkins
岗位标签: 自动化测试
是否高频: 是
题目答案:
安装jenkis的步骤:1. 安装java;2.安装apache tomcat;3.下载jenkins war文件;4.部署jenkins war文件;5.安装推荐的插件。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
120、题目名称: 如何通过命令行或者浏览器手动启动/重启jenkins?
岗位标签: 自动化测试
是否高频: 是
题目答案:
通过命令行:启动jenkins: jenkins start;停止:jenkins stop;重启:jenkins restart.;通过浏览器:(jenkins_url)/restart。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
121、题目名称: 列举一些jenkins中常用的环境变量
岗位标签: 自动化测试
是否高频: 是
题目答案:
$NODE_NAME-节点名称;$JOB_NAME-任务名;$WORKSPACE-工作目录(构建的任务对应文件所在目录);$JOB_URL-任务地址;$BUILD_URL-构建地址。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
122、题目名称: jenkins安排构建有几种方式?
岗位标签: 自动化测试
是否高频: 是
题目答案:
1.源代码管理工具触发(每一次代码提交触发一次构建);2.手动请求;3.在jenkins任务配置中用cron joba配置定时任务。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
123、题目名称: 简述jenkins中集成git的流程
岗位标签: 自动化测试
是否高频: 是
题目答案:
1.创建一个jenkins任务;2.进入源代码管理标签页;3.如果已经安装了git,直接选择git选项;4.如果git选项不可见,重新安装以下插件: GitHub, GitHub Branch Source, GitHub API, Gitclient;6.安装结束后重启jenkins,回到步骤2;7.从github pull代码(需要保证jenkins机器上安装了git命令).
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
124、题目名称: 什么是代码即流水线(pipeline as a code)?
岗位标签: 自动化测试
是否高频: 是
题目答案:
Pipeline-as-a-code是一种通过代码来维护CI/CD工作流的技术,提供声明式语法支持预定义结构的流水线创建,可以控制流水线的组成和基本配置等,底层有一套脚本机制,可以把流水线翻译成代码。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
125、题目名称: 什么是kubernetes?它如何与jenkins集成?
岗位标签: 自动化测试
是否高频: 是
题目答案:
kubernets是一套容器编排工具,用来创建和配置多台容器是例以保证容错率,jenkins可以使用kubernets插件来实现云服务商的持续部署。
选题理由:
· 高频面试题
· 实际项目中经常使用到
· 考察知识的深度
· 常识性问题
下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
软件测试面试小程序
被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!
涵盖以下这些面试题板块:
1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux 6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 10、开放性测试题,11、安全测试,12、计算机基础
编辑资料获取方式 :xiaobei_upup