Download - Page pattern for web testing
基于页面模式的Web测试
孙 嫣 ThoughtWorks中国公司
Automa'on!
How to automate?
Test A
Test B
Base Class (Commonly used
methods): • Base Class A • Base Class B
Test A
Test B
Base Class (Commonly used
methods): • Base Class A • Base Class B • Base Class C • Base Class D Test
C
Test D
可读性 �
可复用性 �
可维护性 �
Test E: • a.Register
• c.TypeUsername • c.TypePassword • c.SelectCountry • c.Submit
… …
LoginPage: • Login
• ForgetPassword • Register
…
HomePage: • ViewInbox • SendEmail • SearchEmail
…
Test D: • a.login
• b.ViewInbox • c.CalcEmailNum
… …
Test C: • a.Login
• a.ForgetPassword • c.PersonalInfo • d.ResetPassword
… …
Test E: • a.Register
• c.TypeUsername • c.TypePassword • c.SelectCountry • c.Submit
… …
LoginPage: • Login
• ForgetPassword • Register
…
HomePage: • ViewInbox • SendEmail • SearchEmail
…
Test C: • a.Login
• a.ForgetPassword • c.PersonalInfo • d.ResetPassword
… …
Test D: • a.login
• b.ViewInbox • c.CalcEmailNum
… …
这样做如何?
LoginPage: • Login
• ForgetPassword • Register
…
HomePage: • ViewInbox • SendEmail • SearchEmail
…
Test C: • a.Login
• a.ForgetPassword • c.PersonalInfo • d.ResetPassword
… …
Test D: • a.login
• b.ViewInbox • c.CalcEmailNum
… …
Test E: • a.Register
• c.TypeUsername • c.TypePassword • c.SelectCountry • c.Submit
… …
易于维护 � 可读性强 � 复用 �
操 �作 �的 �集 �合 �
打球 �编写程序 �设计测试用例 �看书 �⋯ �
Page Object
Selenium?
Selenium 太慢!
WebDriver
Web自动化测试类库 �
Selenium WebDriver
• 不再是运行于浏览器的JavaScript程序 �
• 独立控制浏览器 �
• 提供了更广泛易用的API
• 提供非图形化的测试运行方式 �
• PageFactory
快! �
独立于浏览器 �
速度快 �
可模拟Selenium
不支持全部浏览器 �
不支持JS弹出窗口
不支持CSS Locator
I’m WebDriver
Selenium 2.0 将支持 WebDriver
Why are the projects merging? Partly because WebDriver addresses some shortcomings in selenium (by being able to bypass the JS sandbox, for example. And we’ve got a gorgeous API), partly because selenium addresses some shortcomings in WebDriver (such as suppor'ng a broader range of browsers) and partly because the main selenium contributors and I felt that it was the best way to offer users the best possible framework.
-‐-‐ Simon Stewart Aug. 6, 2009
Example
测试Google高级搜索功能 � �
3个页面对象 �WebDriver TestNG
测试 A
测试 B
Page Object
• 同一组页面操作的集合 �
• UI与Test之间的映射 �
• 隐藏内部实现,提供可读性强的接口 �
• 易于维护和扩展 �
• 复用性强 �
Key Points for Page Pa`ern
Ques'on?
Thanks!
孙 嫣 November 22, 2010