轻量级自动化测试框架:WebZ
一、什么是WebZ
WebZ是用Python写的“关键字驱动”的自动化测试框架,基于WebDriver。
设计该框架的初衷是:用自动化测试让测试人员从一些简单却重复的测试中解放出来。之所以用“关键字驱动”模式是因为我觉得这样能让测试人员(测试执行人员)快速上手,无需编写代码也能执行自动化测试。
二、为啥开源
WebZ的开发用到了一些现有的开源项目。
该项目的GitHub地址:https://github.com/ZMANONE/WebZ
三、开源说明
# Portions copyright (c) 2014 ZMAN(ZhangNing) # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # # Name: WebZ # Description: keyword-driven automated testing framework # Author: ZMAN(ZhangNing) # # This project also uses some third-party modules: # # selenium: Licensed under the Apache License, Version 2.0 (the "License"); # Copyright 2008-2013 Software Freedom Conservancy. # # splinter: Licensed under the BSD License; # Copyright 2012 splinter authors. All rights reserved. # # reportlab: Licensed under the BSD License; # Copyright ReportLab Europe Ltd. 2000-2014. # # xlrd: Licensed under the BSD License; # Portions copyright 2005-2009, Stephen John Machin, Lingfo Pty Ltd. All rights reserved. #
四、使用方法
1.将 chromedriver.exe 放置在任意位置,添加到系统环境变量中。
2.将编写完成的自动化测试用例文件“case.xlsx”放在 D 盘根目录下。
3.运行WebZ.exe。若用例被正确执行,会在 D:\WebZ 目录下找到测试报告。
注:该程序在Win7 x64环境下打包而成。
示例:
测试用例(case.xlsx):
如上图所示,这个文件包含两条测试用例,向大家展示了一些WebZ中基础的关键字。关于关键字的详细定义,请参见附录。
编写测试用例的人员如果懂得一些前端知识,那就很赞了,不了解也没关系,现在很多浏览器都有“元素审查”功能。以Chrome为例,按F12进入审查元素模式,点击“放大镜”图标。
然后点击你想要操作的元素,如“百度一下”按钮,此时浏览器就会高亮元素信息,直接右键复制CSS或XPATH即可,然后和WebZ提供的关键字相结合就可以对元素进行操作啦。
我们来跑一下这两条用例,自动生成测试报告(如果有未通过的用例,会列出失败步骤):
(好吧,本来报告内容是中文的,因为我发到GitHub了,所以我把这些中文都改成了英文,国际化嘛……)
五、实现解析
如果你想要在Python开发环境中运行WebZ,请使用Python3,你还需要安装以下几个开源库:reportlab、xlrd、selenium、splinter。
WebZ结构大致是这样的:
读取excel中的用例进行格式预处理、分段,读取定义的关键字,通过WebDriver进行分类处理,同时捕捉失败信息(如果用例执行失败,会再次尝试,共尝试三遍),最后生成报告。
当时设计WebZ时,构思就是这是一个轻量级的WEB自动化测试框架,但是要保留可扩充性的特点,主要可以对关键字进行自行扩充和封装。
“自动化测试是将一些重复性高却又简单的手动测试自动化,而不是要取代自动化。实行自动化测试前要考虑实现成本和收益情况”
-----------------------------------------------------------------
附录:
WebZ 关键字一览
1. 打开网页|(直接填网址)
如:打开网页|www.baidu.com(注:网址不含http://)
2. 点击|方法@@控件名方法支持:id、css、xpath
如:点击|xpath@@ti[2]>ao[3]>ca[0]
3. 填写|方法@@控件名@@文字方法支持:id、css、xpath
如:填写|id@@textbox1@@我爱测试
4. 后退
5. 刷新
6. 截图
7. 等待
等待两秒
8. 点击文字|(直接写文字)
如:点击文字|了解详情
9. 前往|(直接写网址)
如:前往|www.baidu.com
10. 验证|方法@@文字方法支持:url、css、xpath、text
如:验证|url@@www.yiban.cn
又如:验证|text@@欢迎
11. 鼠标移至|方法@@文字方法支持:css、xpath
如:鼠标移至|css@@img1
(该方法用于一些含有动画的控件,因为有些控件鼠标移到上面就会发生变化,而无需点击。)