pyweb自动化题

selenium工作原理

https://blog.csdn.net/yoyocat915/article/details/80246744

1、请列举web自动化中常见的元素定位方式(5分)

 

1id

根据id来获取元素,返回单个元素,id值一般是唯一的

2name

根据元素的name属性定位

3tagName

根据元素的标签名定位

4className

根据元素的样式class值定位

5linkText

根据超链接的文本值定位

6partialLinkText

根据超链接的部分文本值定位

7cssSelector

css选择器定位

8xpath

通过元素的路径来定位

2、如何定位属性值动态变化的元素?(5分)

元素动态变化有特征,如id属性 lemonxxxxx, xxxx是随机变化的,那么可以根据xpath的contains函数来获取 --> //*[contains(@id,’lemon’)]

如果无特征,根据相对关系定位根据其附近的父节点、子节点、兄弟节点定位

3、xpath中绝对路径和相对路径有什么区别?(5分)

绝对定位

元素的完整路径如:/html/body/div/div/a

相对定位

从dom结构中的任意位置匹配 如://a

4、Selenium中如何等待元素可见?(5分)

显示等待定制等待的条件

代码如下:

wait = WebDriverWait(driver,20)

wait.until(expected_conditions.visibility_of_element_located(by));

5、请列举出web自动化中你常用的断言(验证)方式(5分

在pytest中直接使用 assert expected == actual

在unittest中使用 首先获取actual ,和expected的值 然后进行assertEqual(expected,actual)进行断言

6、请说出显示等待和隐式等待的区别(5分)

隐式等待:通过driver对象给所有的元素设置的全局等待,在设置的时间范围内一直不断去找元素,如果超时则会抛出异常。

显示等待:针对元素设置的等待时间,并且只对该元素有效,用来等待某个条件满足。默认会每间隔0.5秒去找元素,检查元素是否满足等待的条件,超时则会抛出异常。

7、在selenium运行过程中如何去动态改变元素的属性?(5分)

通过javaScipt脚本去操作dom对象

8、UI自动化测试是否需要做数据库校验?(5分)

不需要,按照测试金字塔分层,最上层为UI层,中间层为API接口层,最底层为单元测试层。我们可以在API接口层去做数据库校验,在UI层我们只需要模拟用户的操作即可。

9、UI自动化测试用例如何设计?(10分)

UI自动化测试用例是从手工测试用例中提取出来的

跟手工测试用例相比,自动化测试用例更加注重用例的严谨性

选择用例的时候遵循以下原则:

(1)优先选取覆盖产品核心功能的用例

(2)从成本考量,不要选择流程过于复杂的用例

(3)选取的用例可以是重复执行,繁琐的部分,比如字段验证、提示信息验证

(4)优先实现正向的测试用例,反向用例一般情况复杂、数量多

10、为了提高UI自动化脚本的稳定性,你有做了哪些工作?(10分)

(1)尽量用相对路径的xpath表达式

(2)查找元素优先用显示等待

(3)用例与用例之间尽量避免产生依赖,用例可以独立执行

(4)用例执行结束后对测试场景进行还原,避免影响其他用例的执行

(5)脚本执行失败后加入重试机制,提升用例的稳定性

(6)尽量保证单独的测试环境,避免其他的测试同步进行

11、为了提高UI自动化脚本的可维护性,你有做了哪些工作?(10分)

1Page Object分层模式,业务和页面元素分离

2测试数据和用例分离,单独维护测试数据

3页面和用例共性提取

4可追溯日志

12、什么是PO(Page Object)模式?(5分)

PO模式:将业务逻辑和页面逻辑分开来,核心思想是通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化, 只需要调整页面元素封装的代码,提高测试用例的可维护性、可读性。
PO模式可以把一个页面分为三层,对象库层、操作层、业务层。

13、维护了多少条web自动化测试用例?稳定性怎么样?(5分)

例如:100+case(不要少于100,否则面试官会认为只是在做初级的自动化而已,应用这套框架,平均每次case的通过率在85%左右,还在持续的优化中。

14、web自动化用例覆盖率如何?(5分)

例如:80%左右,其中包括主流程场景和核心业务

15、ui自动化实现你认为最困难的地方是什么(5分)

比如:

1需求经常变动,脚本维护成本高

2特殊元素难以定位

3脚本执行不稳定,经常性fail

16、对于登录验证码如何处理?(5分)

1测试环境中去除验证码

2自动识别验证码技术

3万能验证码

4设置cookie

17、失败用例之后如何截图?(5分)

用例的本质其实就是页面的基础操作。所以封装了basepage在basepage当中,对每一个基本操作(如点击、输入等)都进行异常捕获,当操作失败时,使用driver的save_screenshot函数进行截图操作

18、selenium中如何实现文件上传(5分)

对于input类型的元素,可以直接通过sendKeys写入文件的路径即可

对于不能写入路径的,可以使用第三方的工具如:AutoIT

19、在web自动化中,你一般完成什么类型的测试?(5分)

冒烟测试+回归性测试

回归性测试的部分主要是选取一些业务核心、相对比较稳定、容易实现的场景

20、请描述下你所设计的Web自动化框架的特点?(10分)

2通过pytest单元测试框架组织/管理测试用例

3引入Page Object思想对用例进行分层设计,业务和页面元素分离

设计:测试用例层+页面对象层+元素定位层+测试数据层

(4)页面元素共性操作提取:basepage封装,实现实时执行日志输出、异常实时捕获、用例失败截图。对外只提供元素操作,屏蔽掉元素等待和元素查找,简化页面操作逻辑代码。

5测试用例中,数据驱动使用

6logging日志引入,问题定位/追溯

7Allure报表,用例失败后截图

8用例失败重试,提高用例稳定性

https://blog.csdn.net/xty00/article/details/95943231

9集成到Jenkins中,每天/每小时构建多次

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值