UI自动化面试题

1.你是如何搭建ui自动化框架的?

在搭建ui自动化框架,使用的是po设计模式,也就是把每一个页面所需要

操作的元素和步骤都封装成一个页面类中。然后使用selenium+unittest搭建

四层框架实现数据、脚本、业务逻辑分离(关键字驱动)。其中四层框架包括

基础层(BasePage)、业务逻辑层(Pages)、数据层(Data)、测试用例层(Testcase)

1.基础层(BasePage)

设计一个基本的Page类,所有页面皆继承该类。提供一个页面需要实现的基本功能及公共方法。

2. 业务逻辑层(Pages)

按照PO设计模式,将每个页面抽象为一个类,放在Pages包里面,每个页面继承Basepage,可调用Data层数据,包括页面所有的操作对象属性和实现的功能

3.数据层(Data)

该层存放相关数据,例如:用户数据和密码。在测试用例可通过调用数层的数据来进行操作。

4. 测试用例层(Testcases)

每一个测试用例testcase都对应Pages里面的一个页面,继承unnitest.TestCase类

通过调用对应页面类的方法,数据层的数据、增加断言(assert)来验证功能的正确性。

此外通过Jenkins自动执行测试、代码质量检测和部署到测试服务器、部署到生产服务器上

2.UI自动化测试中定位方式有哪些,哪些是你常用的?

By ID

By Class Name

By Tag Name

By Name

By Link Text

By Partial Link Textzhi

By CSS Seletor

By XPath


3.UI自动化测试有哪些缺点?如何改进?

不稳定,页面经常变,不好定位,不适合业务复杂和频繁变动的项目

改进:在项目中尽量使用显示等待


4.请你描述一下在UI自动化运用的等待机制区别?

sleep()强制等待,设置固定休眠时间,执行sleep()后线程休眠

而另外两种线程不休眠

隐式等待,是设置的全局等待

显示等待,是针对于某个特定的元素设置的等待时间


5.PO设计模式的原理?哪些地方能够改善?

原理:

PO模式,全称 Page object ,页面对象模型。

将页面的元素定位和元素行为封装成一个 page 类。

实现页面对象和测试用例分离。

改善:

其中对对象库层、逻辑层、业务层进行了一系列封装


6.Unittest框架有什么缺点?

1 不够灵活,比如进行 ui 自动化设计时,会多次打开浏览器,增加脚本运行时间

2 测试报告不够全面,没有 pytest 的 allure 测试报告清晰美观


7.Webdriver的原理

由于客户端脚本(java, python, ruby)不能直接与浏览器通信,这时候可以把Webdriver 当做一个翻译器,它可以把客户端代码翻译成浏览器可以识别的代码(比如js).客户端(也就是测试脚本)创建 1 个 session,在该 session 中通过 http 请求向Webdriver 发送请求,Webdriver 翻译成浏览器懂得脚本传给浏览器,浏览器把执行的结果返回给 Webdriver,Webdriver 把返回的结果做了一些封装(一般都是 json 格式),然后返回给客户端,根据返回值就能判断对浏览器的操作是不是执行成功。


8.selenium 中 hidden 或者是 display = none 的元素是否可以定位到?

不能


9.如何提高 selenium 脚本的执行速度?

1减少操作步骤,减少脚本用例不必要的步骤

2设置等待时间的时候,可以

sleep 固定的时间,也可以检测某个元素出现后中断等待也可

以提高速度

3实现多线程。在编写测试用例的时候,一定要实现松耦合,然后在服务器允许的情况下,

尽量设置多线程运行,提高执行速度。


10.如何实现多线程?

先写一个run的函数

保证for循环能跑的通

在run函数上加个装饰器 @threads(n),n是线程数


11.说一下XPATH定位的原理?

基于HTML的文档目录结构进行定位元素


12.selenium中如何判断元素一定存在?

Presense_of_element_located


强制等待、隐性等待、显性等待

1.强制等待--固定等待一段时间,即使设置一定的等待时间,也不能确保一定能够定位到元素,因为你无法知道页面加载的时间,而且这种方法通常比较浪费脚本执行时间,效率低

2.隐性等待--设置最长的等待时间,在这个时间内,当元素被加载出现在dom树中且页面被完全加载完成之后,才执行下一步操作,保证了脚本的稳定性,但执行效率相对较低,因为往往我们只需要目标元素出现即可,并不需要挣个页面加载完成,而隐性等待要等待挣个页面加载完才能执行下一步,浪费一定时间,那么为了解决这种弊端又引入了显示等待。

3.显示等待--显示等待实现方式通过判断某一个条件是否成立,如果成立就立即执行下一步操作,不需要等待页面加载完成,执行效率高,脚本的稳定性也相对较高



selenium原理

我们使用Selenium实现自动化测试,主要需要3个东西

1.测试脚本,可以是python,java编写的脚本程序(也可以叫做client端)

2.浏览器驱动,这个驱动是根据不同的浏览器开发的,不同的浏览器使用不同的webdriver驱动程序且需要对应相应的浏览器版本

3.浏览器,目前selenium支持市面上大多数浏览器,不同的浏览器使用不同的webdriver驱动程序且需要对应的浏览器版本


selenium工作过程

1.selenium client(python等语言编写的自动化测试脚本)初始化一个service服务,通过webdriver启动浏览器驱动程序chromedriver.exe

2.通过RemoteWebDriver向浏览器驱动程序发送HTTP请求,浏览器驱动程序解析请求,打开浏览器,并获得sessionid,如果再对浏览器操作需携带此id

3.打开浏览器后,所有的selenium的操作(访问地址,查找元素)均通过RemoteConection链接到remote server,

然后使用execute方法调用request方法通过urlib3向remote server请求

4.浏览器通过请求的内容执行对应动作

5.浏览器再把执行的动作结果通过浏览器驱动程序返回给测试脚本

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,576评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,515评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,017评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,626评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,625评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,255评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,825评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,729评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,271评论 1 320
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,363评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,498评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,183评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,867评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,338评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,458评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,906评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,507评论 2 359

推荐阅读更多精彩内容