Python自动化测试面试题
一、问答题
1、自动化代码中,用到了哪些设计模式?
答:自动化代码用到过的设计模式:
①单例设计模式
②工厂模式
③PO设计模式
④数据驱动模式
⑤面向接口编程设计模式
2、什么是Selenium
答:Selenium是一个开源的web自动化测试框架,支持多种编程语言开发自动化测试脚本,支持跨浏览器平台进行测试
3、TestNG中注解有哪些?
答:@Test,@BeforeSuite,@AfterSuite,@BeforeTest,@AfterTest,@BeforeClass,@AfterClass,@BeforeMethod,@AfterMethod,@DataProvider
4、什么是断言?
答:断言Assert用于在代码中验证实际结果是不是符合预期结果,如果测试用例执行失败会抛出异常并提供断言日志
5、TestNG有哪些有点?
答:TestNG的注释非常强大和方便,TestNG允许并行测试,并可以基于group的方式执行测试,还可以生成测试报表,并且报告展示多样化,可在其基础上自行开发测试报告插件以及测试监听器
6、什么是web自动化测试?
答:web自动化测试指的是从UI(用户界面)层面进行的自动化测试,测试人员通过编程自动化程度(测试用例脚本)来打开浏览器测试网站的业务逻辑
7、写出Selenium中你最熟悉的接口或类?
答:webDriver、lnternetExplorerDriver、FirefoxDriver、ChromeDriver、WebElement、WebDriverWait、By
8、元素定位类型有哪些?
答:By类一共有8中元素定位方式,他们都是静态方法:
By.id(),By.name(),By.tagName(),By.className(),By.cssSelector(),By.linkText(),By.partialLinText(),By.xpath()
9、登录按钮除了用click方法进行点击以外还有其他方式么?
答:还可以使用submit()方法,前提是input元素的type为submit
10、怎么对含有验证码的功能进行自动化测试的?
答:1)图像识别,技术难度大,效果不佳,不推荐
2)屏蔽验证,邀请开发处理,但在预生产环境或者生产环境不推荐
3)万能验证码,使用一个负责的其他人无法猜到的验证码
11、怎么验证复选按钮是不是被选中?
答:可以使用元素的isSelected()方法,如果返回的是true则说明被选中,否则表明未被选中
12、如何处理alert弹窗?
答:处理alert弹窗首先需要先跳转到alert上,然后在点击确定或者取消按钮,
Alert alet=driver.switchTo().alert();//切换到alert
alert…accept();//确定
alert.dismiss();//取消
13、如何用webdriver进行鼠标右键点击操作?
答:使用Actions类
Actions actions=new Actions(driver);
actions.moveToElement(element).perform();
actions.contextClick().perform();
14、举一个webDriver中方法重载的例子?
答:frame(string nama),frame(int index),
frame(WebElement element)
15、下拉菜单中如何去选择一个菜单项?
答:如果下拉菜单是select标签,使用方法:
selectByValue()或者是selectBylndex()或者selectByVisibleText()即可
如果这个下拉菜单不是通过select标签创建,则直接通过xpath定位元素然后去点击选择
16、你的自动化用例的执行策略是什么?
答:自动化测试与软件开发本质上是一样的,利用自动化测试工具,经过测试需求分析,设计出自动
化测试用例,从而搭建自动化测试的框架,设计与编写自动化脚本,验证测试脚本的正确性,最终完
成自动化测试测试脚本(即主要功能为测试的应用软件)并输出测试结果
自动化测试的时候是不是需要连接数据库做数据校验?
从数据库层面来进行数据校验可以更方便验证系统的数据处理方面是否正确,数据处理逻辑正常后,
UI层面上的校验也是需要做的。
17、id,name,class,xpath, css selector这些属性,你最偏爱哪一种,为什么?
答:css 、xpath 几乎所有的元素都可以定位到,但是它们的短处在于页面上更改了元素后位置很容易
改变,所以首先使用的还是id或者name等。
18、APP 测试常见的严重问题有哪些? 分别引起的原因有哪些?
答:常见的有 crash、ANR(应用无响应、卡死),一般由设备碎片化、网络波动大、内存泄漏、代
码编写错误
19、app 测试有哪几种环境?
答:本地环境: app 安装的手机环境和电脑搭建的自动化测试环境(比如安卓 SDK 等等) 。
服务器环境: war 包部署的服务器, 服务器可以通过浏览器访问, 也可以通过 app 去访问。(访问
的是 web 程序的接口)
20、简单介绍一下 Android SDK 的安装步骤:
答: 下载 jdk 和安卓 sdk
安装 jdk, 配置环境变量(java_home、 classpath、 path)
21、当一个接口出现异常时候,你是如何分析异常的?
答:先抓包,用fiddler(charles)工具抓包,或者浏览器上F12调试工具;APP上的话,那就用
Fiddler做代理,通过手机设置代理去看请求和返回报文;
查看后端日志,如Linux系统通过xhell连上服务器,查看接口日志,查看是否有报错信息(命令:tail -
f 日志文件);
22、如何分析一个bug是前端还是后端的?
答:平常提bug的时候,前端开发和后端开发总是扯皮,不承认是对方的bug。
这种情况很容易判断,先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就是前端发
的数据不对;
请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题。
以上的是个人整理出来的面试资料,需要的点这里Q-q-u-n领取,点文件下载就OK了!