自动化测试常见面试题

这里写目录标题

  • 1.1.Selenium WebDriver查找页面元素及元素操作
    • 1. Web自动化测试
    • 2.Selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?
    • 3.如何提高Selenium脚本的执行速度?
    • 4.用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没办法通过了,如何去提升用例的稳定性?
    • 5.你的自动化用例的执行策略是什么?
    • 6.自动化测试的时候是不是需要连接数据库做数据校验?
    • 7.id,name,class,xpath, css selector这些属性,你最偏爱哪一种,为什么?
    • 8.如何去定位属性动态变化的元素?
    • 9.点击链接以后,Selenium是否会自动等待该页面加载完毕?
    • 10.什么是page object设计模式?
    • 11.如何在定位元素后高亮元素(以调试为目的)?
    • 12.什么是断言?
    • 13.你觉得自动化测试最大的缺陷是什么?
    • 14.Webdriver可以用来做接口测试吗?
    • 15.Android APP 内存不足时, 系统如何结束进程获得内存?
    • 16.APP 测试常见的严重问题有哪些? 分别引起的原因有哪些?
    • 17.请简单介绍你曾使用过的一款 APP 自动化测试工具 ?
    • 18.Android 测试与 web 测试有什么区别?
    • 19.app 测试有哪几种环境?
    • 20.简单介绍一下 Android SDK 的安装步骤:
    • 21.请简要介绍一下移动应用及其服务端的测试点?
    • 22.如何判断 app 的 bug 是客户端问题还是后台问题
    • 23.安卓中如何取出日志信息?
    • 24.常见的 adb 命令:
    • 25.APP 这么多主流机型如何测试 ?
    • 26.App 崩溃(闪退),可能是什么原因导致的?
    • 27.Appium 都有哪些启动方式
    • 28.请简单介绍一下使用过的安卓UI自动化测试工具?
    • 29.请说明Android手机和IOS手机,系统有什么区别?
    • 30.按你的理解,软件接口是什么?
    • 31.HTTP和HTTPS协议区别?
    • 32.HTTPS在哪一层?
    • 33.get和post区别是什么?
    • 34.常见的POST提交数据方式
    • 35.什么是Http协议无状态协议?怎么解决HTTP协议无状态协议
    • 36.cookie和session的区别
    • 37.请求接口中常见的返回状态码
    • 38.什么是DNS?
    • 39.怎么设计接口测试用例?
    • 40.你做接口测试,测什么?
    • 41.平常用什么工具测接口的?
    • 42.没有接口文档,如果做接口测试?
    • 43.在手工接口测试或者自动化接口测试的过程中,上下游接口有数据依赖如何处理?
    • 44.依赖于第三方数据的接口如何进行测试?
    • 45.接口测试中,依赖登录状态的接口如何测试?
    • 46.如何模拟弱网做测试?
    • 47.你平常做接口测试的过程中发现过哪些bug?
    • 48.当一个接口出现异常时候,你是如何分析异常的?
    • 49.如何分析一个bug是前端还是后端的?
    • 50.你们做接口测试自动化吗?
    • 51.列出几个JMeter监听器?
    • 52.在python中进行数据驱动测试
    • 53.接口自动化中的关联怎么处理?
    • 54.自动化测试怎么校验结果?
    • 55.自动化使用的测试框架是什么?简述自动化框架的设计、维护
    • 56.具体的在这个项目中自动化怎么应用到实际的,您对自动化结果的分析
    • 2.0.Selenium UI自动化测试中元素定位不到的原因和解决方法
        • 1、总览
        • 2、元素定位不到的原因之【页面元素没有及时加载】
            • 问题定位思路:
            • 为什么要使用显示等待?
            • 设置显示等待的两种方法:
        • 3、元素定位不到的原因之【页面元素不可见或不可点击】
        • 4、元素定位不到的原因之【页面元素是动态的】
            • 动态元素怎么定位?

1.1.Selenium WebDriver查找页面元素及元素操作

1.1.1.元素常用定位

Id name class_name xpath

1.通过id定位元素:find_element_by_id(“id_vaule”)
2.通过name定位元素:find_element_by_name(“name_vaule”)
3.通过tag_name定位元素:find_element_by_tag_name(“tag_name_vaule”)
4.通过class_name定位元素:find_element_by_class_name(“class_name”)
5.通过css定位元素:find_element_by_css_selector();用css定位是比较灵活的
6.通过xpath定位元素:find_element_by_xpath(“xpath”)
7.通过link_text定位:driver.find_element_by_link_text(“新闻”).click()
8.通过partial link_text 定位:driver.find_element_by_partial_link_text(“闻”).click()

1.1.2.定位分类总结

1.Id,name,class name:为元素属性定位
2.tag_name:为元素标签
3.link text 、partial link text:为超链接定位(a标签)
4.Xpath:为元素路径
5.Css :为css元素选择器定位

1. Web自动化测试

Selenium中hidden或者是display = none的元素是否可以定位到?
不能,可以写JavaScript将标签中的hidden先改为0,再定位元素

2.Selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?

1.添加元素智能等待时间 driver.implicitly_wait(30)
2.添加强制等待时间(比如python中写 sleep)
3.try 方式进行 id,name,clas,x path, css selector 不同方式进行定位,如果第一种失败可以自动尝试第二种

3.如何提高Selenium脚本的执行速度?

代码优化,多任务,分布式部署都是可以提升脚本执行速度的。

4.用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没办法通过了,如何去提升用例的稳定性?

1.time.sleep( )
2.driver.implicitly_wait(30)
3.多用 try 捕捉,处理异常

5.你的自动化用例的执行策略是什么?

自动化测试与软件开发本质上是一样的,利用自动化测试工具,经过测试需求分析,设计出自动化测试用例,从而搭建自动化测试的框架,设计与编写自动化脚本,验证测试脚本的正确性,最终完成自动化测试测试脚本(即主要功能为测试的应用软件)并输出测试结果

6.自动化测试的时候是不是需要连接数据库做数据校验?

从数据库层面来进行数据校验可以更方便验证系统的数据处理方面是否正确,数据处理逻辑正常后,UI层面上的校验也是需要做的。

7.id,name,class,xpath, css selector这些属性,你最偏爱哪一种,为什么?

css 、xpath 几乎所有的元素都可以定位

你可能感兴趣的:(自动化测试,面试)