51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2251|回复: 3
打印 上一主题 下一主题

[讨论] Web自动化测试框架改进

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-2-28 16:47:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

Web自动化测试框架(WebTestFramework)是基于Selenium框架且采用PageObject

设计模式进行二次开发形成的框架。
一、适用范围:传统Web功能自动化测试、H5功能自动化测试。
二、兼容性:建议使用火狐或谷歌浏览器,因为Selenium与其兼容性最好。
三、框架改进亮点(比Selenium框架优的地方):

1、 采用PageObject设计模式,将某个页面的所有元素(包含控件)属性及元素操作

封装在1个Class里面,如下所示:

这样做的目的是为了解耦,即测试代码与被测页面对象代码分离,后面若页面元素发

生了变化,只需要修改被测页面对象代码(即上述Class文件)而不需要修改测试代码,

这样大大减小了后期因页面变化导致脚本或用例维护的成本。
下面展示的测试代码片段中未用到任何页面元素对象:

2、 采用XPath策略来寻找页面元素,而不建议使用Name、Link等方式来寻找。因

为当页面元素的Name、Link发生了变化,测试代码(测试用例)就无法执行下去

或执行过程中不稳定。若采用XPath,只要页面元素所在区域未发生变化,而Name、

Link等发生了改变,测试代码基本不会受影响,代码如下所示:

声明:一般XPath是基于CSS样式来做的,但CSS-Style改变的需求或可能性不是很

大,换句话说,这样的变动周期较长;若想“以不变应万变”, 使用DOM元素的ID

进行定位,这种方式的好处是不受元素所在位置、以及所应用的样式的影响。

3.将页面元素属性信息与代码分离,即与被测对象代码分离,这样做的目的也是为了

进一步降低后续因页面变化带来的维护成本,即当页面发生改变时,只需要修改对

应页面中XML配置文件信息,如下所示:

个人心得:
若希望基于Selenium框架二次开发的框架更加易于扩展,可以尽量少用Selenium

提供的API,可以使用大量JS注入的方式来进行界面元素操作!


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    奋斗
    4 小时前
  • 签到天数: 1806 天

    连续签到: 5 天

    [LV.Master]测试大本营

    4#
    发表于 2018-3-1 09:01:01 | 只看该作者
    谢谢分享~正好要学习selenium!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-22 13:09 , Processed in 0.065871 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表