基于selenium测试框架设计之MVC模式

Kefira ·
更新时间:2024-09-21
· 875 次阅读

这里只是借用MVC这个名字,其实和web应用的mvc模式不是一个概念

M是model,是数据模型,从测试来讲包含测试数据和测试对象数据。 -测试数据管理。在数据驱动的场景下可能要用到大量测试数据,可以是随机或特定约束下生成的,或者从外部导入。无论哪种都需要支持类和方法来生成,存储,操纵或转换。 测试数据的格式常见的有csv,xml,excel,数据库等。在java里配置数据一般存在xml或者properties文件,便于读取和管理,而大量的数据纪录则用csv比较经济。数据结构来讲映射到对象比多维数组更便于检索,但开销也大一些。 数据库存测试数据增加了依赖性,但是方便复杂的查询。各种结构可谓各有利弊,从个人实践上讲csv是常用的输入输出格式,其中一个重要因素是csv转换excel非常方便。

-测试对象数据。QTP有动态和静态对象库的概念。这种机制有利于脚本的维护,完全可以借鉴到我们自己的框架设计体系中来。selenium里可以标示网页对象的是Locator,webdriver里是By。类型不外乎name,id,class,xpath,jquery locator等,描述方式接近于QTP的描述性标示。Terrillium 框架采用了groovy混合编程,是利用了脚本语言在描述层次对象上的灵活性。假如用java实现的话也可以用递归的方式来检查组合对象,比如表单。表单对象有若干子对象,比如输入框,提交按钮,下拉框等。一个一个对象检查有些累赘,改进后伪代码如下 checkCombObject(WebObject object){ if(object.hasChildren()){ for(Object obj : object.allChildren){ checkCombObject(obj); } } assertObjectMatch(expectedObj, object); } 这样一行代码可以检查整个表单 checkCombObject(webForm);

先写到这里,下次再写V(View)和C(Control)



MVC mvc模式 selenium 框架

需要 登录 后方可回复, 如果你还没有账号请 注册新账号