page pattern for web testing
TRANSCRIPT
![Page 1: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/1.jpg)
基于页面模式的Web测试
孙 嫣 ThoughtWorks中国公司
![Page 2: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/2.jpg)
Automa'on!
![Page 3: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/3.jpg)
How to automate?
![Page 4: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/4.jpg)
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
![Page 5: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/5.jpg)
可读性 �
可复用性 �
可维护性 �
![Page 6: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/6.jpg)
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
… …
![Page 7: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/7.jpg)
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
… …
![Page 8: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/8.jpg)
这样做如何?
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 9: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/9.jpg)
易于维护 � 可读性强 � 复用 �
操 �作 �的 �集 �合 �
打球 �编写程序 �设计测试用例 �看书 �⋯ �
Page Object
![Page 10: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/10.jpg)
Selenium?
![Page 11: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/11.jpg)
Selenium 太慢!
WebDriver
![Page 12: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/12.jpg)
Web自动化测试类库 �
![Page 13: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/13.jpg)
Selenium WebDriver
• 不再是运行于浏览器的JavaScript程序 �
• 独立控制浏览器 �
• 提供了更广泛易用的API
• 提供非图形化的测试运行方式 �
• PageFactory
快! �
![Page 14: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/14.jpg)
独立于浏览器 �
速度快 �
可模拟Selenium
不支持全部浏览器 �
不支持JS弹出窗口
不支持CSS Locator
I’m WebDriver
![Page 15: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/15.jpg)
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
![Page 16: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/16.jpg)
Example
测试Google高级搜索功能 � �
3个页面对象 �WebDriver TestNG
![Page 17: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/17.jpg)
测试 A
![Page 18: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/18.jpg)
测试 B
![Page 19: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/19.jpg)
Page Object
![Page 20: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/20.jpg)
• 同一组页面操作的集合 �
• UI与Test之间的映射 �
• 隐藏内部实现,提供可读性强的接口 �
• 易于维护和扩展 �
• 复用性强 �
Key Points for Page Pa`ern
![Page 21: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/21.jpg)
Ques'on?
![Page 22: Page pattern for web testing](https://reader031.vdocuments.net/reader031/viewer/2022020307/55a2c0051a28abfe3e8b46d2/html5/thumbnails/22.jpg)
Thanks!
孙 嫣 November 22, 2010