python自动化测试面试题(二)(持续更新)

在这里插入图片描述

这里写目录标题

接上一篇博文:https://blog.csdn.net/YZL40514131/article/details/125940126

21、selenium原理(最新)

在这里插入图片描述

22、你的自动化用例的执行策略是什么?(重要)

1、自动化测试用例是用来监控的,再次目的下,我们就把自动化测试用例设置成定时执行的,每30分钟执行一次,在jenkins上创建一个定时任务即可
2、必须回归的用例。有些测试用例,在产品任何变动上线之前都需要回归测试
3、不需要经常执行的测试用例,我们没有必要一直回归执行,毕竟是有时间消耗的,有些时候非必要的业务不需要经常回归
4、不需要经常执行的测试用例就需要人工执行,在jenkins创建一个任务,需要执行的时候人工构建

23、Selenium有哪几种定位方式?用的最多的是哪种?

tag_name:通过标签名称,找出来的元素太多了
name:用户输入input,不出意外总会有name属性
class_name
id:
1、同一个页面当中,某个id只能用一次,
2、如果元素有id,会优先使用id定位,
3、不好的消息,不是所有的元素都有id
link_text:连接的文本,只能用来定位连接
partial_link_text
css_selector
xpath:用的最多,具体的用法在博文https://blog.csdn.net/YZL40514131/article/details/123858970

24、UI自动化能发现多少Bug

UI自动化的目的不是为了发现多少Bug,主要是为了减轻重复的基础操作和线上监控的作用

25、你们一般对什么case会进行自动化,自动化一般在哪个阶段进行

a、按照用户逻辑,从登录平台到操作一个完整的流程再到最后关闭浏览器这一套实现自动化,其中包括好多正向用例,
b、比较繁琐的操作,需要手工多次点点的对于这部分用例,也实现自动化测试
c、核心业务整个流程

a、项目后期进行回归测试、
b、其他项目上线会影响到该项目时,做回归测试
c、运维对数据库进行迁移时,做全量的回归测试
d、主要是主流程中比较容易实现的进行自动化,一般在集成阶段进行该版本的自动化监控,平常的话会一直跑线上监控的

26、你觉得自动化测试最大的缺陷是什么?

页面变化大,维护成本高

27、明明自己定位的元素是对的,执行自动化测试脚本时却报错,这时你有几种方法解决此问题?请写出你的解决方法(最新)

在这里插入图片描述

28、简单说出如何用自动化测试脚本实现遍历复选框点击功能(要求全部勾上)。

xPathRadio = driver.find_element_by_xpath('//input[@type="radio"]')
# radiobox复选框对象我们必须使用find_elements方法去定位多个元素(复选框就是多元素)
radioboxes = driver.find_elements_by_xpath(xPathRadio)
# 使用循环遍历的方式,逐个点击这些定位到的元素
for radiobox in radioboxes:
    radiobox.click()

29、 自动化测试用例如何编写?(重要)

a.用例是自动化测试工程师自己设计的,一般刚开始已基本业务流程为主(登录–完成一个业务–退出)

b.从系统测试用例中进行筛选或由业务工程师提供

30、你觉得自动化测试的价值在哪里?你们公司为什么要做自动化测试?(重要)

a、引用自动化测试之后,能代替大量繁琐的回归测试工作,把业务测试人员解放出来,既而让业务测试人员把精力集中在复杂的业务功能模块上,自动化测试一般是对稳定下来的功能进行自动化,保证不会因为产品的更新导致之前稳定下来的功能出现BUG

b、测试环境和线上环境监控

c、运维对数据库的迁移

31、如果一个元素无法定位,你一般会考虑哪些方面的原因?(最新)

在这里插入图片描述

32、怎么验证元素是enable/disabled/checked状态?

定位元素后:分别通过isEnabled(),isSelected(),isDisplayed()三个方法进行判断。

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

UI自动化不需要
接口测试会需要

34、举例一下说明一下你遇到过那些异常

ElementNotSelectableException:元素不能选择异常
ElementNotVisibleException:元素不可见异常
NoSuchAttributeException :没有这样属性异常
NoSuchElementException:没有该元素异常
NoSuchFrameException:没有该frame异常
TimeoutException: 超时异常
Element not visible at this point:在当前点元素不可见

35、如何设计高质量自动化脚本(最新)

1、业务逻辑和测试逻辑分离。
2、业务中定义的方法和公共方法分离
3、测试数据和测试逻辑分离
4、元素表达式和页面方法分离

5、对于页面类的方法,我们尽量从客户的正向逻辑去分析,方法中是一个独立场景,例如:登录到退出,而且不要想着把所有的步骤都封装在一个方法中。
7、测试用例设计中,减少测试用例之间的耦合度。

在这里插入图片描述

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

1、避免使用强制等待,使用隐形等待和显性等待
2、尽量使用独立的测试账号
3、用例与用例之间不要依赖,减少用例的耦合性
4、用例失败重试机制
5、不要选择太复杂的测试用例,按照用户的操作,从登录系统到完成一些业务流程
6、批量执行测试用例
7、持续集成,通过定时构建,任务触发构建,项目代码修改触发,防止由于人为操作带来非bug
8、通过持续集成自动化脚本执行完成后,自动发送测试报告、钉钉信息给相关负责人,使其第一时间了解自动化测试结果。
9、代码中多加try…except捕获异常,处理异常,保证框架的稳定性。
10、使用独立的测试环境,避免他人修改环境配置

37、webdriver可以用来做接口测试吗?

不可以,webdriver是专门做web的UI自动化参数

38、在python中进行数据驱动测试

在unittest中,没有自带的数据驱动,我们得借助第三方库ddt来实现,首先,我们得在python运行环境中安装ddt,用下列命令安装
pip install ddt
另外一个测试框架pytest,它自带数据驱动实现,是通过 @pytest.mark.parametrize(argnames,argvalues) 来实现参数化的。
也可以根据自己需求用python实现数据的读取和驱动。

39、pytest 和 unittest 的区别?

1、pytest有自动收集用例的的功能
2、pytest有上千种插件,自己的插件系统
3、pytest有失败重新运行的功能
4、pytest有非常灵活的测试夹具、fixture、setUp、tearDown
5、pytest和unittest是完全兼容的

40、find_element() 和 find_elements() 有什么区别?

find_element() :获取单个元素

el_list=driver.find_element_by_xpath(//div[@class=“name-box”]/a’)

find_elements() :获取一组元素

el_list=driver.find_elements_by_xpath(//div[@class=“name-box”]/a’)

例如:

from selenium import webdriver
import time
driver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://qidian.com/rank/')


#获取一组元素
el_list=driver.find_elements_by_xpath('//div[@class="name-box"]/a')
print(len(el_list))

#遍历列表
for el in el_list:
    print(el.text)

执行结果

捕星之执宰星河
7号基地
陈医生,别怂!
请公子斩妖
开局就较真,对面被我吓到报警!
做媒这一块,我谁都不服
曾经,我想做个好人
大明:我,调教木匠皇帝
身为超人弟弟的我却成了祖国人

灵境行者
明克街13号
这游戏也太真实了
不科学御兽
家父汉高祖
深空彼岸
择日飞升
我的属性修行人生
我已不做大佬好多年

择日飞升
夜的命名术
陈医生,别怂!
我的属性修行人生
我在修仙界长生不死
开局就较真,对面被我吓到报警!
宇宙职业选手
深空彼岸
什么叫六边形打野啊

夜的命名术
家父汉高祖
择日飞升
明克街13号
这游戏也太真实了
道诡异仙
大乘期才有逆袭系统
我的属性修行人生
不科学御兽

从洪荒逃到武侠
美漫:我的战锤模拟器
曹操穿越武大郎
捉诡二十年,我进入了惊悚游戏
什么叫Carry型上单啊
代价逆转:我在大周斩仙
从体术开始纵横诸天
从欢乐颂开始的影视人生
这个武者太危险

在这里插入图片描述
在这里插入图片描述

  • 46
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 42
    评论
一、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()方法的使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敲代码敲到头发茂密

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值