Selenium的PageFactory在大型项目中的应用
作者:网络转载 发布时间:[ 2014/5/28 9:26:43 ] 推荐标签:Selenium PageFactory 软件测试工具
因为近遇到的技术问题一直没找到可行的解决办法,一直在翻看selenium的源代码,之前写测试代码的时候是拿来即用,写什么功能啊,按手动的操作步骤去转换,近日看到一个文章,又去wiki上查了查,觉得写的不错记录下来了。
在使用selenium做UI测试的时候,往往并不是页面的每个功能我们都要测试,总有一些经常要进行回归的功能,再细致一点的说,有一些节点是我们经常 操作的,那么我从项目初期开始进行自动化测试代码编写的话,我们可以设计适应项目的一套自动化测试代码结构,基本的思路是对每一个页面都创建一个相应 的PageObject类,如果是公共的模板页面当然只建立一个可以了。这样下来相当于建立了很多基础页面一样,如果项目开发的过程中还有完整的文档 或者足够详细的用户故事,那么简直太完美了~~因为这样你可以减少很多次的IDE----Browser之间的切换、查找、测试工作,真的方便很多。但 是这个看项目而定吧,这种细致入微的文档很多团队似乎都没能做到。但是笔者还是真的希望在产品初期或项目开始的时候有完整的文档给我们这些自动化测试的人 员手中,这样可以大大加快我们自动化测试代码的编写。绕的有点远了。。。回归正题,如何做这种一个页面一个基础类的实现呢?实际的,看代码:
1 public class PageObject {
2
3 private WebElement searchTypeSng;
4 private WebElement fromCity;
5 private WebElement toCity;
6 private WebElement fromDate;
7
8 public String calDate(int nextDays) {
9 // 当前日期加 n 天之后
10 Date date = DateUtils.addDays(new Date(), nextDays);
11 // 格式化时间格式
12 return DateFormatUtils.ISO_DATE_FORMAT.format(date);
13 }
14
15 public void searchTrip(WebDriver driver,String from, String to ,String date) {
16 BaseUtils.clearAndTypeString(driver,fromCity, from);
17 BaseUtils.clearAndTypeString(driver,toCity, to);
18 BaseUtils.clearAndTypeString(driver,fromDate, date);
19 searchTypeSng.submit();
20 }
21
22 }
|
public class UsingPageObject {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
EventFiringWebDriver eventDriver = new EventFiringWebDriver(driver);
eventDriver.register(new MyWebDriverListener());
eventDriver.get("http://flight.qunar.com/");
PageObject object = PageFactory.initElements(driver, PageObject.class);
String date = object.calDate(30);
object.searchTrip(driver,"北京", "厦门", date);
}
}
|
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11