自动化测试面试题

765 阅读10分钟

自动化测试框架有哪些

Appium AppUI自动化测试 Selenium WebUI自动化测试 Jmeter 接口测试,性能测试 Postman 接口测试 Soapui 接口测试 Monkey 稳定性测试 Robot WebUI自动化测试,接口测试 QTP WebUI自动化测试 Locust 性能测试 Loadrunner 性能测试 GT App性能测试 Appscan 安全测试

UI

用户界面(User Interface)是指对软件的人机交互、操作逻辑、界面美观的整体设计。好的UI设计不仅是让软件变得有个性有品味,还要让软件的操作变得舒适、简单、自由、充分体现软件的定位和特点。

cook和session区别

答:

1、cookie数据存放在客户的浏览器上,session数据存放在服务器上;

2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗;考虑到安全应当使用session

3、session会在一定时间内保存在服务器上,当访问量增加时,会比较占用服务器的性能;考虑到减轻服务器性能方面,应当使用cookie

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie;

5、将登录信息等重要信息存放在cookie,其他信息如果需要保留,可以放在cookie中;

sessionStorage localStorage 和cookie之间的区别

共同点:都是保存在浏览器端,且同源的

区别:

  1、cookie数据自始至终在同源的http请求中携带,即cookie在浏览器和服务器间来回传递,而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。cookie数据还有路径的概念,可以限制cookie只属于某个路径下。

2、存储大小限制也不同,cookie数据不能超过4K,同时每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识,sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或者更大。

3、数据有效期不同,sessionStorage仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持

  localStorage始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭

4、作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localStorage在所有同源窗口中都是共享的,cookie也是在所有同源窗口中都是共享的

5、WEB Storage支持事件通知机制,可以将数据更新的通知发送给监听者

6、WEB Storage的api接口使用更方便

HCP/IP三次握手

1.第一次握手,发送SYN报文,传达信息:“你好,我想建立连接”;

第二次握手,回传SYN+ACK报文,传达信息:“好的,可以建立链接”;

第三次握手,回传ACK报文,传到信息:“好的,我知道了,那我们连接”。然后就建立连接了。

*2.在发送报文之前各方都要确认可以进行连接。**之所以采取三次握手机制,不过是为了信息传输的可靠性,如果其中某个握手失败,*这个过程将会重复,来确保其可靠性。

*3.如果采取两次握手,相当于第二次握手结束便建立连接,如果发送SYN的一方不想连接了,**也不会有反馈,另一方却一直在等待,浪费了时间。当然可以采取4次甚至N次握手,但是有必要吗?建立连接的时间太长,效果也会大打折扣。**所以3次只是折中方案,保证了可靠性,*又节俭了建立连接的时间。

简述pageobject

一.)原理

将页面元素定位和对元素的操作行为封装成一个page类,实现对页面对象和测试用例的分离。

一条测试用例可能需要多个步骤操作元素,将每个步骤单独的封装成一个方法,在执行测试用例的时候调用封装好的操作。

类的属性:元素定位

类的行为:元素的操作

测试用例:调用所需页面中对象的行为组成测试用例。

二.)好处

1.当某一个页面的元素发生变化,只需要修改该页面对象中的代码即可,不需要重复不断的修改测试用例。

2.提高代码重用性,结构更加清晰,维护代码更容易。

3.测试用例发生变化时,只需要修改少数页面对象即可。

selenium原理?

A:当使用 Selenium启动浏览器 Web Browser 时,后台会同时启动基于 WebDriver Wire 协议的 Web Service 作为 Selenium 的 Remote Server,并将其与浏览器绑定。绑定完成后,Remote Server 就开始监听 Client 端的操作请求。 执行测试时,测试用例会作为 Client 端,将需要执行的页面操作请求以 Http Request 的方式发送给 Remote Server。该 HTTP Request 的 body,是以 WebDriver Wire 协议规定的 JSON 格式来描述需要浏览器执行的具体操作。 Remote Server 接收到请求后,会对请求进行解析,并将解析结果发给 WebDriver,由 WebDriver 实际执行浏览器的操作。 WebDriver 可以看做是直接操作浏览器的原生组件(Native Component),所以搭建测试环境时,通常都需要先下载浏览器对应的 WebDriver。

appium原理?

A:Appium 属于 C/S 架构,Appium Client 通过多语言支持的第三方库向 Appium Server 发起请求,基于 Node.js 的 Appium Server 会接受 Appium Client 发来的请求,接着和 iOS 或者 Android 平台上的代理工具打交道,代理工具在运行过程中不断接收请求,并根据 WebDriver 协议解析出要执行的操作,最后调用 iOS 或者 Android 平台上的原生测试框架完成测试。

1.什么是自动化测试?

自动化测试是一种使用自动化工具编写和执行测试人员测试脚本和案例的技术。
自动化测试的主要目标是减少手动运行的测试用例数量,而不是完全取消手动测试。

2.什么时候自动化测试?

在以下情况下首选自动化
        *   重复性任务
        *   烟雾和理智测试
        *   使用多个数据集进行测试
        *   回归测试用例
通常,决定基于ROI(投资回报率)

3.你什么时候不自动化测试?

人们不应该在以下情况下自动化
        *   当受测试的应用程序频繁更改时
        *   一次测试案例
        *   临时 - 随机测试

4.自动化过程涉及哪些步骤?

在自动化过程中,涉及的步骤是
        *   选择测试工具
        *   定义自动化范围
        *   规划,设计和开发
        *   测试执行
        *   保养

5.规划自动化阶段时涉及的要点是什么?

在自动化的规划阶段,必须考虑的事项是
        *   选择“正确”的自动化工具
        *   如果选择自动化框架
        *   范围内和自动范围外的项目列表
        *   测试环境设置
        *   为测试脚本开发和执行准备项目时间表的授予图表。
        *   确定测试可交付成果

6.在什么条件下我们不能使用Agile方法的自动化测试?

在以下条件下,自动化测试对敏捷方法无用
        *   当敏捷测试总是要求改变需求时
        *   当敏捷需要详尽的文档级别时
        *   仅适用于敏捷测试期间的回归测试,如持续集成

7.良好的自动化工具的主要特征是什么?

*   测试环境支持且易于使用
*   良好的调试设施
*   强大的物体识别
*   对象和图像测试能力
*   对象识别
*   测试数据库
*   支持多个框架

8.软件自动化测试中使用的框架有哪些类型?

在软件自动化测试中使用了四种类型的框架
        *   数据驱动的自动化框架
        *   关键字驱动的自动化框架
        *   模块化自动化框架
        *   混合自动化框架

9.执行自动化测试时的脚本标准是什么?

在编写用于自动化的脚本时,您必须考虑以下事项:
        *   统一命名约定。
        *   每10行代码3行注释
        *   足够的缩进。
        *   强大的错误处理和恢复方案
        *   尽可能使用框架

10.哪些是最受欢迎的自动化测试工具?

最受欢迎的自动化测试测试工具是
        *   QTP(HP UFT)
        *   理性机器人
        *   Selenium

11.您可以在什么基础上绘制自动化测试的成功图?

通过遵循标准,可以映射自动化测试的成功
        *   缺陷检测率
        *   自动化执行时间和时间节省以释放产品
        *   减少人工和其他费用

12.可以列出手动测试的一些缺点吗?

*   手动软件测试需要更多时间和更多资源。
*   不准确
*   反复执行相同的测试用例容易出错并且很无聊。
*   在非常大的项目和有时限的项目上进行手动测试是不切实际的。

13.告诉我你对Selenium的了解

Selenium是一个免费的(开源)Test Suite框架。它用于自动化Web和移动环境。它包括
        1.  Selenium IDE(浏览器插件 - 录制和播放工具)
        2.  Selenium WebDriver
        3.  Selenium Grid(分布式测试)
Selenium支持Java,C#,Python,Ruby,PHP,Perl,Javascript等语言的脚本编写。

14.告诉我有关QTP的信息

QTP(Quick Test Professional)现在称为HP UFT。它是一种商业自动化工具,支持各种测试环境Web,桌面,SAP,Delphi,Net,ActiveX,Flex,Java,Oracle,Mobile,PeopleSoft,PowerBuilder,Siebel,Stingray,Visual Basic等。

脚本语言是VBScript。该工具可与HP ALM(测试管理工具)和HP LoadRunner(性能测试工具)很好地配合使用。

QTP的突出特点包括业务流程测试,关键字驱动框架,XML支持,强大的检查点,测试结果。

15.解释Sikuli是什么?

Sikuli是一个使用“Visual Image Match”方法自动化图形用户界面的工具。Sikuli中的所有Web元素都应作为图像存储在项目中。
Sikuli由。组成
        *   Sikuli脚本
        *   Jython的Visual Scripting API
        *   Sikuli IDE
Sikuli的实际用途是
        *   它可用于自动化Flash网站或对象
        *   它可以自动执行基于窗口的应用程序以及您在屏幕上看到的任何内容,而无需使
        *   它提供简单的API
        *   它可以很容易地与Selenium等工具相关联
        *   桌面应用程序可以自动化
        *   Sikuli为自动化Flash对象提供广泛的支持
        *   要自动化桌面,它使用强大的“Visual Match”和Flash对象
        *   它可以适用于任何技术--.NET,Java,

16.提到Selenium和Sikuli有什么区别?

Selenium:
        *   它不能自动化视频播放器,音频播放器等闪存对象。
        *   它有复杂的API
        *   它没有视觉匹配
        *   它只能自动化Web应用程序
Sikuli:
        *   它为自动化Flash对象提供了广泛的支持
        *   它有简单的API
        *   它使用视觉匹配来查找屏幕上的元素。因此,我们可以自动化我们在屏幕上看到的任何内容
        *   它可以自动化Web和Windows应用程序