一、自动化测试面试相关
你会封装自动化测试框架吗?
你觉得自动化测试最大的缺陷是什么?
什么是兼容性测试?兼容性测试侧重哪些方面?
我现在有个程序,发现在 Windows 上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题?
自动化代码中,用到了哪些设计模式?
测试的策略有哪些?
描述测试用例设计的完整过程?
上一个项目中自动化测试的执行策略?
在上一家公司做自动化测试用的什么框架?
怎么对含有验证码的功能进行自动化测试?
如何优化和提高 Selenium 脚本的执行速度?
遇到alert弹出窗如何处理?
元素定位方法你熟悉的有哪些?
Seleinum是否有读取excel文件的库
举例一下你遇到过那些异常,在selenium自动化测试过程中
你查找元素遇到过在Frame里面吗?你是如何处理Frame里面元素定位的?
在执行脚本过程,如何实现当前元素高亮显示?
你知道哪些测试自动化的脚本技术?
二、自动化测试框架有哪些
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.您可以在什么基础上绘制自动化测试的成功图?
通过遵循标准,可以映射自动化测试的成功
* 缺陷检测率
* 自动化执行时间和时间节省以释放产品
* 减少人工和其他费用