page pattern for web testing

22
基于 面模式的Web 测试 ThoughtWorks中国公司

Upload: bqconf

Post on 13-Jul-2015

680 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Page pattern for web testing

基于页面模式的Web测试

孙 嫣 ThoughtWorks中国公司

Page 2: Page pattern for web testing

Automa'on!  

Page 3: Page pattern for web testing

How  to  automate?  

Page 4: Page pattern for web testing

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

可读性 �

可复用性 �

可维护性 �

Page 6: Page pattern for web testing

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

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

这样做如何?  

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

  易于维护 �  可读性强 �  复用 �

操 �作 �的 �集 �合 �

打球 �编写程序 �设计测试用例 �看书 �⋯ �

Page  Object  

Page 10: Page pattern for web testing

Selenium?  

Page 11: Page pattern for web testing

Selenium  太慢!  

WebDriver  

Page 12: Page pattern for web testing

Web自动化测试类库 �

Page 13: Page pattern for web testing

Selenium  WebDriver  

•  不再是运行于浏览器的JavaScript程序 �

•  独立控制浏览器 �

•  提供了更广泛易用的API  

•  提供非图形化的测试运行方式 �

•  PageFactory  

快! �

Page 14: Page pattern for web testing

独立于浏览器 �

速度快 �

可模拟Selenium  

不支持全部浏览器 �

不支持JS弹出窗口  

不支持CSS  Locator  

I’m  WebDriver  

Page 15: Page pattern for web testing

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

Example  

测试Google高级搜索功能 � �

3个页面对象 �WebDriver  TestNG  

Page 17: Page pattern for web testing

测试  A  

Page 18: Page pattern for web testing

测试  B  

Page 19: Page pattern for web testing

Page  Object  

Page 20: Page pattern for web testing

•  同一组页面操作的集合 �

•  UI与Test之间的映射 �

•  隐藏内部实现,提供可读性强的接口 �

•  易于维护和扩展 �

•  复用性强 �

Key  Points  for  Page  Pa`ern  

Page 21: Page pattern for web testing

Ques'on?  

Page 22: Page pattern for web testing

Thanks!  

孙 嫣 November 22, 2010