最近伙伴传回来的,高频自动化测试面试题集锦!

1. 请说说常用主流的自动化测试框架?

Web端主流框架:selenium,RF

移动端:appium,RF,airtest,uiautomator

C/S端:RF,airtest

接口:python库requests,RF,jmeter,postman

2. web自动化元素定位方式有哪些?

css、xpath、id、name、class_name、tag_name、link_text、partial_link_text这是web自动化测试的元素定位方法。用的比较多的话基本就是css、xpath、id

3. xpath定位通过开发者工具定位直接复制,那么为什么还要手写xpath表达式?

通常情况下,元素定位使用id、name、class、text等可以满足日常大部分定位需求。

但是随着自动化测试的深入,和不同前端同框架要求,会发现上面的定位方式无法解决一些元素定位

1、没有id、name、class等属性;

  1. id或者class是动态的

3、标签的属性或文本信息特征没有或者不明显;

4、标签嵌套复杂,层次太多等。

xpath能精准定位,能模糊定位,写Xpath表达式让元素定位更稳定,更灵活

4. 如何理解自动化测试分层思想?

分层思想是让不同层去做不同类型的事情,让代码结构清晰,增加复用性、一般分两层或三层、代码重用。控制脚本失败,降低维护成本,对自化的成败至关重要。

一般分为以下几层

1.对象库层(基础对象:浏览器,元素对象)

2.逻辑处理层:脚本运行过程,公共方法封装

3.业务层:功能测试用例的业务过程

4.数据层:数据驱动

5.自动化测试中你是如何做数据驱动的?

数据驱动我用的是python中的ddt模块,或者pytest自带的数据驱动

实现方式有以下几种

  1. 用excel表格,每一行代表一个测试用例,循环读取excel表中测试用例的数据

  2. 用yaml文件形式

  3. 用xmind方式写用例,python读取xmind文件

6.能说一下POM模式吗?

定义:PO模式是UI自动化常用的设计模式,是一种封装思想,这种设计模式旨在为每个待测试的页面创建一个页面对象(class),将那些繁琐的定位操作封装到这个页面对象中,只对外提供必要的操作接口,是一种封装思想

如何实现POM:

在POM下,被测项目的每一个页面都有一个对应的page class

每一个page class维护着该web页的元素定位集和

每一个page class维护着该web页的操作这些元素的方法

7. unittest单元测试框架了解过吗,为什么会用到unit test?

unittest是Python单元测试框架,使用unittest的目的

1.灵活的组织ui自动化/接口测试用例

2.让用例高效的执行

3.断言:方便验证测试用例的结果

4.集成html形式测试报告

Unittest的特性:

1.一个class继承unittest.TestCase,即是一个个具体的TestCase(类方法以 test 开头,否则是不被unittest识别)

2.每一个用例执行的结果的标识,成功是 .,失败是 F,出错是 E

3.verbosity参数可以控制执行结果的输出,0 是简单报告、1 是一般报告、2 是详细报告。

4.用 setUp()、tearDown()、setUpClass()以及 tearDownClass()可以在用例执行前布置环境,以及在用例执行后清理环境

5.参数中加stream,可以将报告输出到文件:可以用HTMLTestRunner输出html报告。

6.多个单个的测试用例集合在一起,就是TestSuite

8.unit test与pytest的区别能说说吗?

  1. unittest 用例格式复杂,不能兼容pytest用例

Pytest用例格式简单,能兼容unittest用例

  1. unittest的测试报告需要用第三方库HTMLTestRunner

Pytest 自带pytest-HTML测试报告,集合allure

  1. unittest不支持失败重运行,pytest用rerunfai’ures插件支持失败重运行

  2. Pytest支持用例并发运行

  3. Pytest支持mark标签,用于冒烟回归测试

  4. Pytest可以通过conftest实现跨文件共享数据,比如共享前置操作

在这里插入图片描述
0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzE5Nzk5NA==,size_16,color_FFFFFF,t_70)

【软件测试工作流程】

文章首发于微信公众号:程序员阿沐,转载请注明出处!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
一、linux 1,linux常用命令 2,某个时间段日志的查询 3,linux文件的上和下载 二、功能测试 1,工作中所遇到的错误 2,测试流程: 3,测试计划元素: 4,测试报告元素: 5,测试点: 6,测试方法: 7,bug相关问题 8,adb常用命令 9,软件测试原则 10,测试用例编写的要素 11,测试用例的设计原则 12,软件产品质量特性 13,android四大组件 14,web测试和app测试的区别 15,app的anr的根本原因 16,app的crash的原因 17,h5页面图片未加载出来问题排查 18,区分原生和h5页面 19,为什么不能用jenkins打包 三、性能测试 1,了解jmeter 2,性能指标 3,如何做性能测试 四、接口测试 1,如何设计接口测试用例 2,为什么要做接口测试 3,接口测试的关注点 4,request处理cookie的三种方式 五、自动化测试 1,自动化核心框架 2,自动化测试的好处 3,自动化的前提 4,自动化测试的场景 5,元素定位的8种方式 6,如果一个元素无法定位,一般会考虑哪些原因 7,driver.close()和driver.quit()的区别 8,自动化脚本断言 9,判断页面元素是否存在 10,js在web自动化中的作用展示 11,自动化代码优化 12,selenium对比RF 13,自动化测试脚本三种等待 14,PO模式 六、HTTP协议 1,HTTP协议特点: 2,HTTP输原理 3,get和post的区别 4,HTTP响应代码 5,osi七层模型 6,三次握手过程 7,session和cookie的区别 8,tcp和udp的区别 9,sockect通信原理 10,post的三种请求方式 七、数据库 1,sql分类 2,数据库事务特性:ACID 3,mysql索引的类型 4,池化思想 5,redis 6,如何提高数据库运行效率 八、java 1,面向对象的三个特征 2,重写和重载 3,比较sping,sping mvc 4,进程和线程的区别 5,java三层架构 6,处理异常 九、python 1,字符串反转的7种方法 2,new 和 _init_ 3,不使用中间变量交换两个变量的值 4,python四大内置高阶函数 5,python带颜色输出 6,python *args,**kargs用法 7,python常用模块 8,python多线程 9,python发送邮件 10,python操作图像 11,python的replace()方法的使用
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值