首页 > 编程知识 正文

python自动化测试面试,python做ui界面设计

时间:2023-05-06 20:20:36 阅读:31079 作者:2294

1 .你是怎么构建ui自动化框架的?

8 Q7 U9 c V9 G,~; 正在构建^# G ^(A$ ] )自动化框架。 使用了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升

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

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

2 .在ui自动化测试中的定位有哪些,哪些是常用的? p5 M4 e0 JJ5 R0 F0 Q; ^,e y

byid'l(ug ) d*Q4F3Z0h

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

By Tag Name

8 ^! ]z/w5IA8h((xbyname#k/F7N7N3G0K! u 4米

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

By Partial Link Textzhi {4 _3 }* U

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自动化测试有哪些缺点? 怎么改善? 8ln ) 9b.[/R9z]B5K

不适合不稳定、页面频繁变动、定位差、业务复杂频繁变动的项目

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

1[-k-D0nD6]1(*e

请说明F-`.W4K-O6X/LF#J4.UI自动化运行中等待结构的差异? 3 px5 @# ~,t2 b2 w

sleep ) )强制等待,设置一定的休眠时间,sleep ) )后进行线程休眠

1 v. ]9 rq0 h x3 R% Y,其他两种线程不休眠

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

显示待机时间。 为特定元素设定的等待时间

E5 j8 v. q/Y: L' |2 H5 `8 c% o-? /B2T({ (

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

5.PO设计模式的原理? 有哪些方面可以改善? % J#? % I! u; |

原理:

*? v$v; bPO模式、全名Page object和页面对象模型。

: @4 r- `1 y! u% s将页面上的元素放置和元素行为封装在一个page类中。 1p ) t%O2Q6Zs

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

改进:

5 {6 r$ L# U# Z# @! 在P: a中,对对象库层、逻辑层、业务层进行了一系列封装4(7m8_e'p8} )

#@'I9r$w2I/r(k#L4y: $ ' v: B* ],w! D* J

6.Unittest框架有什么缺点?

4c:ka(c4hcw、Q2 D1缺乏灵活性。 例如,在进行ui的自动化设计时,多次打开浏览器,将脚本的执行时间设定为2 u{' M! h; S1K3 ) :t

2测试报告不够,没有pytest的allure测试报告,鲜明美观0 ~. K1 D% y0 YE7 N2 D5 }

. z; f% b: a3 D4 E

0 D {z: H; {9 r7.Webdriver原理:f(oL; h* W1 y2 w; (- S8 F4 Z

客户端脚本(java、python、ruby )无法直接与浏览器通信,因此此时可以将web驱动程序用作翻译器。 它将客户端代码翻译为浏览器可以识别的代码(例如js )。 客户端) (即测试脚本)创建一个会话。 此会话通过http请求将请求发送到web驱动程序。 web驱动程序将翻译为浏览器,知道脚本并传递给浏览器,浏览器将执行的结果返回给web驱动程序。 web驱动程序可以对返回的结果进行一些封装(通常为json格式)并返回给客户端,然后根据返回值确定对浏览器的操作是否成功。 3 x! j2 sI*; w9 T9 P

2H9[H]M9T$S[9{

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

8.selenium的隐藏或显示=none的元素是

2J1(5L; f; H7 D- R% [不能

4s/`7I*jI5[7z]t(w-gf/z0I6f ) b- V

6 I! r _3 G9 Z! | n' ~6 M

如何提高selenium脚本的运行速度? ' V4 aj0 |ut: N

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

' Q5 C1 ^* Y ) j: {2设置等待时间时,为' Z5 G' f7 P5 i1 s7 b! 米

sleep一定的时间可以检测到某个要素的出现而中断等待

; q! 用e q,x$ [6 x/f' e加快速度

' OL7[-R'H:J(JY3实现多线程。 编写测试用例时,必须实现松散耦合,然后在服务允许的情况下,使用1 @ `! S4 I; I4 b-? 3360a0(y

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

0 V# A3 b1 Q$ B Y% L; z KW8 V; @

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

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

首先写run的函数

: Sn0 E% q ]! |:G7BVfor循环运行的常规

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

、(I.b ) y ) b1rc * (: u.n9a * X6 )、x :至1 o9 ^/p8b # x8a

11.XPath的定位原理是什么?

* p i3 a! 基于m2 `9 I0 ~,y9@2h@html的文档目录结构的对准要素: ^: G$ J1 P6 B! s

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

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

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

0 G. Y% j5 j/i5 f

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

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