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

8 Q7 U9 c& V9 G, ~; ^# G+ ^( A$ ]在搭建ui自动化框架,使用的是po设计模式,也就是把每一个页面所需要

R' ^8 q2 o1 }  `操作的元素和步骤都封装成一个页面类中。然后使用selenium+unitest搭建, H. D8 z' T5 A. V

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

) \, G! {: h4 b2 v基础层(BasePage)、业务逻辑层(Pages)、数据层(Data)、测试用例层(Testcase)$ f8 J$ w2 {; Y5 L

( x; s+ @8 {# t& n( K6 Q& e

- u- O. E& z8 H' x' F

2.UI自动化测试中定位方式有哪些,哪些是你常用的?. p5 M4 e0 J  J5 R0 F0 Q; ^, e& y

By ID" l( u+ g( d* q4 F3 Z0 H

By Class Name% c; T. f: ^. K3 W- F1 X- b4 x

By Tag Name

8 ^! ]) z/ w5 i+ a8 H( [" XBy Name# K/ F7 N7 n3 G0 k! u4 m

By Link Text0 K* }6 C8 b* S, A

By Partial Link Textzhi+ {4 _3 }* U) T

By CSS Seletor# X" w' L. D7 [& b* L

By XPath

2 `+ c5 P5 r. E' ^  t; [/ _/ I) p. y! ~

/ m7 n, g7 w6 {8 h' j: l1 i

% {  S1 O" |! B4 J/ e& h3.UI自动化测试有哪些缺点?如何改进?, ?8 l  N& ]9 B. [/ r9 z) b5 K

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

/ R0 d  ~8 k+ K4 j% B改进:在项目中尽量使用显示等待' f2 A& t, L0 b. E/ v0 ]+ m' G0 i

1 [- K- d0 N+ d6 ]1 \* e

f- `. W4 k- O6 X/ l& F# J4.请你描述一下在UI自动化运用的等待机制区别?3 p  x5 @# ~, t2 b2 w

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

1 v. ]9 r  q0 h+ x3 R% Y而另外两种线程不休眠

0 m8 I1 P' r  J0 p: E7 W7 [7 G# ^隐式等待,是设置的全局等待" w$ G/ \7 G% M8 [3 R9 W' ~

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

& E5 j8 v. q/ Y: L" |2 H5 `8 c% o- ?/ B2 t( {

: {/ Q- o- J1 Q- o3 G7 a

5.PO设计模式的原理?哪些地方能够改善?% J# ?% I! u; |

原理:

* ?  ?0 v$ v; \; bPO模式,全称 Page object ,页面对象模型。

: @4 r- `1 y! u% s将页面的元素定位和元素行为封装成一个 page 类。1 P( t% o2 q6 Z+ s

实现页面对象和测试用例分离。0 Z3 B- _+ h1 k* c) {* q

改善:

5 {6 r$ L# U# Z# @! P: a其中对对象库层、逻辑层、业务层进行了一系列封装4 ]7 M8 _+ e' p8 }

# @' I9 R$ w2 I/ R( k# l4 y: ?$ \" v: B* ], w! D* J

6.Unittest框架有什么缺点?

4 c: k+ A( c4 H+ C+ w, Q2 D1 不够灵活,比如进行 ui 自动化设计时,会多次打开浏览器,增加脚本运行时间2 u  {" M! h; S1 k3 ]: t

2 测试报告不够全面,没有 pytest 的 allure 测试报告清晰美观0 ~. K1 D% y0 Y  E7 N2 D5 }

. z; f% b: a3 D4 E

0 D+ {  z: H; {9 r7.Webdriver的原理: f( O& l; h* W1 y2 w; \- S8 F4 Z

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

2 H9 [& H) M9 T$ s& [9 {

& Q& w4 r$ k* @' F  {. n. G

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

2 J1 \5 L; F; H7 D- R% [不能

4 s/ `7 I* j& I5 [7 \& z) t( W- G& f/ Z0 i6 F) b- V

6 I! r& _3 G9 Z! |& n" ~6 M

9.如何提高 selenium 脚本的执行速度?" V4 a  j0 |  u  t: N

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

' Q5 C1 ^* Y) j: {2设置等待时间的时候,可以' Z5 G' f7 P5 i1 s7 b! M

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

; q! e+ q, x$ [6 x/ f' e以提高速度

" o& L7 [- R' H: j( j  y3实现多线程。在编写测试用例的时候,一定要实现松耦合,然后在服务器允许的情况下,1 @& `! S4 I; I4 b- ?: A0 \' Y

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

0 V# A3 b1 Q$ B& Y% L; z& K  W8 V; @

# j" W9 R4 V/ T' n9 E5 i3 h! o# ]

10.如何实现多线程?6 i1 j. i: Q, S1 e

先写一个run的函数

: S  n0 E% q& ]! |: g7 B& v保证for循环能跑的通

8 Q) d0 j1 C5 N  i在run函数上加个装饰器 @threads(n),n是线程数7 k& m# M: U$ V* W0 N

, \  i. B( Y) b1 r& c* {: u. N9 A* X6 }, x: ~1 O9 ^/ P8 B# X8 A

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

* p& i3 a! m2 `9 I0 ~, Y9 @2 H  @基于HTML的文档目录结构进行定位元素: ^: G$ J1 P6 B! s

N/ B! R6 W* p6 L/ [5 k/ v

0 }3 G4 p* v5 n0 N7 u  a% M12.selenium中如何判断元素一定存在?* {& j2 R! q. h& L) H

Presense_of_element_located, [6 U+ ]0 @) [: z7 Y) h

0 G. Y% j5 j/ i5 f

Java吧 收集整理 java论坛 www.java8.com

python ui自动化面试题_UI自动化面试题相关推荐

  1. python ui自动化配置文件,python UI自动化实战记录八:添加配置

    添加配置文件写入测试地址等,当环境切换时只需修改配置文件即可. 1 在项目目录下添加文件 config.ini 写入: [Domain] domain = http://test.domain.cn ...

  2. python docker自动化_「docker实战篇」python的docker爬虫技术-移动自动化控制工具appium工具(17)...

    原创文章,欢迎转载.转载请注明:转载自 IT人故事会,谢谢! 原文链接地址: 「docker实战篇」python的docker爬虫技术-移动自动化控制工具appium工具(17) Appium是一个开 ...

  3. python自动化控制_python用于自动化控制编程

    Python自动化是做什么的 软件测试里面有Python自动化测试这个课程吗? 在人工智能+大数据的飞速发展的大环境下,Python开发语言日渐火爆,Python自动化测试也将逐渐取代传统的软件测试, ...

  4. 零基础python自动化办公系统_python自动化办公?学这些就够用了

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手? python在自动化办公领域越来越受欢迎,批量处 ...

  5. python 自动化办公实例_python自动化办公太难?学这些就够用了

    有人提问:用 python 进行办公自动化都需要学习什么知识呢? 这可能是很多非 IT 职场人士面临的困惑,想把 python 用到工作中,却不知如何下手? python 在自动化办公领域越来越受欢迎 ...

  6. web python 自动化是什么_Web自动化Selenium+Python系列之一自动化测试基础

    汇智妹一直央求宝哥出版一本<Selenium+Python自动化测试>的书.经宝哥思来想去,最终还是决定免费公开出来,希望给大家带来一些帮助. 宝哥承诺: 从今日起,每周更新三次,如有异常 ...

  7. python docker自动化_「docker实战篇」python的docker爬虫技术-移动自动化控制工具安卓ADB的使用(15)...

    原创文章,欢迎转载.转载请注明:转载自 IT人故事会,谢谢! 原文链接地址: 「docker实战篇」python的docker爬虫技术-移动自动化控制工具安卓ADB的使用(15) adb(Androi ...

  8. python自动化办公模块有哪些-python常见的命令行交互自动化模块有哪些

    用Python写的程序,保存为.py,添加什么命令才能使我一般都是在后面加一个输入语句. python可不可以采用非命令行方式 可以,预先写好代码 使用pythonw.exe执行py文件可以不打开黑框 ...

  9. Python 自动化教程(2) : Excel自动化:使用pandas库

    系列教程: Python 自动化教程(1) 概述,第一篇 Excel自动化 Python 自动化教程(2) : Excel自动化:使用pandas库 Python 自动化教程(3) : 自动生成PPT ...

  10. Selenium+python怎么搭建自动化测试框架、执行自动化测试用例、生成自动化测试报告、发送测试报告邮件

    目录 一.项目结构介绍 1.mztestpro测试项目 2.bbs目录 3.test_case 二.编写公共模块 三.编写Page Object 四.编写测试用例 五.执行测试用例 小结: 本人在网上 ...

最新文章

  1. php多表数据排除,thinkphp中多表查询中防止数据重复的sql语句(必看)
  2. python怎么用excel-Python怎么写入excel文件?详细实例在这里。。。
  3. Button的使用(十):ImageButton
  4. Eclipse 中 SDK无法更新---解决方法
  5. MyBatis动态SQL小结
  6. 怎样使用element-starter快速搭建ElementUI项目
  7. php mvc cms企业站,Phpcms V9程序目录结构及MVC简析
  8. 如何使用JavaScript访问对象的键中有空格的对象?
  9. MLP多层感知机(人工神经网络)原理及代码实现
  10. matlab2c使用c++实现matlab函数系列教程-binopdf函数
  11. 接收子元素focus_获取元素的直接的子元素childen
  12. python爬取喜马拉雅vip音频安卓_Python爬虫:爬取喜马拉雅音频数据详解
  13. Cocos2d之Box2d基础知识
  14. Pikachu靶场暴力破解关卡3
  15. 学习C++的五十个观点
  16. 神经网络调参-warmup and decay
  17. C语言文件操作之----文件的读写
  18. python bitwise operator 位运算
  19. 基于C#的ArcEngine二次开发28: 等高线高程值与国标码一致性检查思路及代码分析
  20. php集成扫描仪,紫光扫描仪

热门文章

  1. 求递推数列通项的特征根法
  2. Php框架CodeIgniter 学习
  3. 龙卷风路径_ae龙卷风路径
  4. 如何在safri查看网页源代码
  5. nodejs 查看下载文件路径_Python + selenium + Chrome 模拟登陆QQ邮箱,批量下载附件,本地重命名
  6. VB 语言介绍以及VBA、宏(Macro)的关系
  7. 从苏宁电器到卡巴斯基第22篇:单证这一年(下)
  8. 获取文件图片后缀名和图片转base64
  9. 计算机太极图怎么设计,AI绘制太极图两种方法介绍
  10. 高性能密码适用性分析