首页 > 编程知识 正文

测试工程师python面试题,python自动化面试题及答案

时间:2023-05-05 17:44:56 阅读:129057 作者:4212

整理自动化问题记录(部分答案由自己整理) ) ) ) )。

selenium如何确定元素存在?

没有提供判断元素是否存在的本机方法,一般可以通过定位元素的异常捕获来判断

是否可以将selenium的隐藏或显示=none元素定位到?

不,如果要单击,可以在js中删除dispalay=none的属性

selenium如何保证操作要素的成功率? 也就是说,怎么保证我点击的元素一定可以点击?

1 .首先,通过封装find方法来实现wait _ for _ element _ is present (webdriverwait )

2 .在click页面之前,滚动到Js封装的元素,以便在未加载或下拉页面之后不显示该页面。

3 .采用不同方式定位,与expected_conditions判断方法封装,待循环判断页面元素出现后操作;

4 .开发人员规范开发习惯,包括为页面元素指定唯一的名称、id等。

如何提高selenium脚本的运行速度?

1 .优化测试用例。 设置等待时间时,不使用sleep,尽量不使用implicitly_wait,多用显式等待时间方法

2 .减少不必要的操作步骤。 如果可以打开经过3、4个步骤进行测试的页面,则可以直接从网站打开

3 .中断页面读取。 如果加载的内容不影响测试,则设置超时时间并中断页面加载;

使用Selenium grid实现测试并发。 在编写测试用例时,实现松散耦合,然后在服务允许的情况下设置多线程以实现并发。

在用例执行过程中经常会变得不稳定。 也就是说,这次可以通过,下次不能通过。 如何提高用例的稳定性?

1 .经常检测失败的因素前,尽量加显式等待时间,待要操作的因素出现后再执行下一步操作;

2 .对于多线程,减少测试用例的耦合度。 因为多线程的执行顺序不受控制

3 .多用try捕获,处理异常

4 .尽量使用测试专用环境,确保其他类型的测试同时进行,不干扰数据。

如何设计高质量的自动化脚本

1.4采用分层结构实现业务逻辑、脚本、数据分离。

2 .使用po设计模式,将一个页面中使用的元素和操作步骤封装到一个页面类中。 如果元素的位置发生变化,则只更改此页面上的元素属性

3 .尽量从客户的前向逻辑分析页面类方法。 有些方法是独立的场景。 例如,不要想登录并退出,然后将所有步骤合并为一种方法。

4在测试用例设计中,减少测试用例之间的耦合度。

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

1 .自动化测试用例用于监控。 集成jenkins,创建定时任务定时执行;

2 .部分用例必须在产品上线前回归。 jenkins将任务绑定到开发的build任务并触发执行;

3 .有些用例不需要频繁执行。 jenkins需要创建并执行任务时手动构建即可。

持续整合是什么?

通过频繁地将代码集成到主干中并持续进行项目框架,可以快速发现错误,并防止树枝严重偏离主干

自动化测试时,是否需要连接到数据库进行数据验证?

不需要UI自动化

需要进行接口测试

Selenium有几种定位方法吗? 你最喜欢哪个? 为什么?

Selenium有八个定位。

name有三种类型: name、class_name和tag_name

与link相关的有link_text、partitial_link_text这两种

与身份相关:身份

全能选手: xpath、css_selector

如果id存在,请确保使用id。 因为简单方便,所以定位最快。 接下来是Xpath。 这是因为html标记的属性通常不够规范,无法唯一确定。 Xpath通过相对定位

否则,应该优先考虑CSS定位器,因为它在大多数现代浏览器中的评估速度高于XPath。

如何找到动态加载到页面中的元素?

首先触发动态事件,然后定位。 对于动态菜单,需要级别定位。 ——JS实现(封装动态事件)

如何找到属性动态变化的元素?

首先,查找该要素的不变属性,如果一切都改变,则查找不变的父要素,在层次上定位(不变对应万变)

属性动态变化意味着该元素没有固定的属性值,可以

JS实现了,

相对位置,例如xpath轴、paren/following-sibling/percent-sibling

3358 www.cn blogs.com/Zhao Zhan/archive/2009/09/10/1564332.html

单击链接后,selenium是否要等待页面自动加载完成?

不。 因此,如果在selenium尚未加载完页面时请求页面资源,则可能会错误地报告此元素不存在。 所以首先,我们必须

该考虑判断,selenium是否加载完此页面。其次再通过函数查找该元素。

webdriver client的原理是什么?

在selenium启动以后,driver充当了服务器的角色,跟client和浏览器通信,client根据webdriver协议发送请求给driver。driver解析请求,并在浏览器上执行相应的操作,并把执行结果返回给client.

webdriver的协议是什么?

WebDrive协议本身是http协议,数据传输使用json

启动浏览器的时候用到的是哪个webdriver协议?

-http

什么是page object设计模式?

1.通俗来讲,把每个页面当成一个页面对象,页面层写定位元素方法和页面操作方法

2.用例层从页面层调用操作方法,写成用例

3.可以做到定位元素与脚本的分离

怎样去选择一个下拉框中的value=xx的option?

1.select类里面提供的方法:select_by_value(“xxx”)

2.xpath的语法也可以定位到

如何在定位元素后高亮元素(以调试为目的)?

-重置元素属性,给定位的元素加背景、边框

什么是断言和验证?

断言(assert):测试将会在检查失败时停止,并不运行后续的检查

优点:可以直截了当的看到检查是否通过

缺点:检查失败后,后续检查不会执行,无法收集那些检查结果状态

验证(vertify):将不会终止测试

缺点:你必须做更多的工作来检查测试结果:查看日志——>耗时多,所以更偏向于断言

page object设置模式中,是否需要在page里定位的方法中加上断言?

不需要,page页只做元素抓取和操作方法

page object设计模式中,如何实现页面的跳转?

初始化driver参数,Page类传driver参数

自动化测试用例从哪里来?

-手工用例中抽取

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

-不稳定

-可靠性不强

-不易维护

-成本与收益

什么是分层测试?

1.数据层

2.接口层’

3.UI层

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

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

get和post 的区别?

1、GET请求:请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。

POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。

2、传输数据的大小

使用GET请求时,传输数据会受到URL长度的限制。

对于POST,理论上是不会受限制的

3、安全性。POST的安全性比GET的高

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。