自动化测试框架 selenium api的封装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动化测试框架 selenium api的封装相关的知识,希望对你有一定的参考价值。


接上一篇 http://tianxietaotao.blog.51cto.com/12002420/1951701 这篇我大概介绍下我这个工具的简单介绍

先上图:

技术分享

制作背景:

    Web自动化测试在现在测试领域已经越来越普遍,但是写代码对于好多测试猿代码基础较弱,搭建系统也比较麻烦。所以我抽闲暇时间做了这个简单的工具:下面简单介绍下功能

工具简单介绍:

1、工具栏:Resume:调试阶段执行到下一个断点 next:单步执行 debug/run 模式切换 执行、停止

2、用例树:用例采用execl或者xml维护,可以加入到测试系统

3、工作区:单用例执行时方便 执行和调试 包含 table查看用例数据 、find 断点时查找元素判断书写方式是否正确

4、log:执行日志

5、调度区:暂时支持顺序执行、用例调整顺序删除等



我称这个软件为 个人客户端版Auto,虽然还有很多细节需要完善,我还是介绍下我写这个软件的过程,如果有借鉴的地方,欢迎大家吐槽。

好习惯先上图 技术分享

技术分享


这张图是整个软件可以完善的覆盖selinum功能的核心。这里大家睁大眼看吧技术分享

1、初始想法

Selinum 我们关注的只有两点 1、元素  2、动作

我在做软件的时候也分为两个实例 1、查找元素  2、执行动作  有了这个思路我们的第一步就可以开迈了

2、想法细化

1、模型设计 用人话说就是 用例的每一条命令包含的内容 抽象为java模型

2、用例源选择 execl、xml 等 用例源 这里介绍使用execl

细化到这已经足够你实施第一步了

1、使用过selinum应该知道 selinum每一个findelement方法 返回为WebElement WebElement可以继续查找元素

这个功能我们不能砍掉啊,链式查找很常用。我们查看WebElement 的类实现树 惊喜的发现 WebDriver 和WebElement 居然实现了同一个接口。多态用起来技术分享

查找元素方法设计为 入口

1、WebElement findElement(WebDriver dr, Command c){ return findElement(SearchContext, str);}

2、WebElement  findElement(SearchContext dr, String[] str) {
while(str.length) {findElement(dr, str[0]) };
return dr;
}
3、WebElement findElement(SearchContext dr, String str){if (strb.startsWith("xpath:")) {
			return dr.findElement(By.xpath(str.substring(6)));
		} }

这样 1掉2,2掉3 3为具体根据模型设计读取的类,这样元素查找的问题就解决了


2、命令:命令比较简单 最傻的方式就是设计命令后 if else if 时间原因我也是这么做的技术分享


这样基础的核心就有了!界面的封装缺失也挺消耗时间的。上面的给大家共勉吧!

本文出自 “天蝎--测试之我贱” 博客,请务必保留此出处http://tianxietaotao.blog.51cto.com/12002420/1952032

以上是关于自动化测试框架 selenium api的封装的主要内容,如果未能解决你的问题,请参考以下文章

自动化测试框架 selenium api的封装

selenium + python自动化测试unittest框架学习webdriver的二次封装

自动化测试框架-webDriver的二次封装

selenium-web自动化框架

自动化测试--封装JDBCUnit

selenium python怎么封装方法