webUI自动化测试框架---”pyswat“介绍

大家好我是lamecho 辣么丑,今天给大家介绍一款web自动化测试框架pyswat  ”pyswat“是一个做web页面自动化测试的框架(python-selenium-web-auto-test缩写)。基于python,利用hook技术及对selenium封装,做到完全录制案例(操作步骤)不需要手写脚本,很方便有木有!:lol



举个栗子,做网站登录操作在python中你要这样写一大堆脚本

       

而通过pyswat的录制后,你得到的是一个excel表格的案例,像这样

                 

得到案例后,执行程序回放案例,超级简单。另外框架实现功能远远不止这些。通过配置文件可以针对某个case设置回放次数,回放时利用智能算法查找元素不需要你在苦逼的写脚本啦。

案例也可以增强,在输入内容上可以指定random随机生成输入内容,比如random:测试+int(3),此时回放时输入就会随机生成文本”测试549“(”测试“+随机的三位数)位数通过括号数字指定。当然也可以这样写random:测试+int+str(5)就会带上随机生成字母。

除了随机生成输入内容,同样如果指定sequence:测试,配合case的回放次数会按顺序生成文本内容进行输入,比如第一遍会生成”测试-0001“,第二遍生成”测试-0002“依次类推。同时如果将生成的内容指定参数名称,再后面的案例可以获取该参数的内容进行前后关联。

还有,封装了drag元素拖拽方法,有没有感觉selenium的拖拽drag_and_drop超级废,pyswat框架封装的drag实现的是超强的半物理拖拽,你只要传入拖拽的两个元素就能实现这两个元素的物理拖拽。

在页面检查上,封装了check()方法,传入检查项可以在回放日志中体现查找结果,类似这样修改案例

                  

日志中记录结果:

2017-05-03 13:16:42 :---- step7 开始

2017-05-03 13:16:45 :------ 查找结果共: 0条

2017-05-03 13:16:45 :------ 查找结果页面无此元素 随便说说

2017-05-03 13:16:46 :---- step7 结束



还有啥呢,在页面元素定位如果查找到的元素是个集合怎么办呢,以往在python脚本中你要写循环做判断进行匹配。而在pyswat框架中,你只要指定”at:填上匹配内容“程序会自动识别匹配。

举个栗子,在雪球网上这样的页面

你要点击某个”关注“按钮,而你通过find_elements_by_class('followStock')找到的是一个集合,在脚本中你要写一大堆判断是吧。

而通过pyswat你只需要这样写,在红框位置加入at:文本内容  就ok了。

如果这样还觉得不够强,那么你可以直接在案例中写python脚本,像这样

这样改够强了吧!

另外实现屏幕滚动,附件上传统统有封装的方法实现。像遇到select,frame等简直小菜一碟,pyswat统统搞定。

最后执行完后,会自动生成柱状图,像这样:

结果一目了然有木有。

目前我正在写pyswat的操作手册,感兴趣的筒子,关注我的新浪微博“lamecho辣么丑”或是微信“fire-bug”,完成手册编写我会第一时间通知并发布测试版本。

webUI自动化测试框架---”pyswat“介绍的更多相关文章

  1. Web 自动化测试框架 sweetest 介绍

    项目开源: https://github.com/tonglei100/sweetest 文章转载:https://segmentfault.com/a/1190000011612061 介绍 swe ...

  2. 基于Java+Selenium的WebUI自动化测试框架(一)---页面元素定位器

    对于自动化测试,尤其是UI的自动化测试.是很多做黑盒功能测试的同学,入门自动化测试一个最为直观的或者说最容易理解的途径之一. 对于手工测试和自动化测试的优劣,网上有很多论述,在这里不作展开讨论.但是, ...

  3. 基于Java+Selenium的WebUI自动化测试框架(十四)-----使用TestNG的Sample

    到目前为止,我们所写的东西,都是集中在如何使用Selenium和Java来定位和读取元素.那么,到底如何具体开展测试,如何实现参数化,如何实现判定呢?下面,我们来看看Java应用程序的测试框架吧. 当 ...

  4. 基于Java+Selenium的WebUI自动化测试框架(八)-----读取元素(XML文件)

    我们继续回到自动化测试框架的主线上来,在前面的文章中,我们定义一个页面元素的主要参数有:路径,找寻方式,等待时间,名称,这个四个参数.另外,我们还需要考虑一个问题,就是网站的页面. 举个例子来说,如果 ...

  5. 基于Java+Selenium的WebUI自动化测试框架(十)-----读取Excel文件(JXL)

    之前,我们使用了读取XML文件的方式来实现页面元素的读取,并做成了基础页面类.下面,我们来进行一些扩展,通过Excel来读取页面元素. Excel的使用,大多数人应该都不陌生.那么Java读取Exce ...

  6. 基于Java+Selenium的WebUI自动化测试框架(六)---浏览器初始化

    本篇我们来讨论,如何写一个浏览器初始化的类.在写之前,先思考一下,我们需要一个什么样的初始化? 先来看看使用原生的Java + selenium是怎么做的.(以firefox为例) System.se ...

  7. 基于Java+Selenium的WebUI自动化测试框架(三)------记录LOG

    在有了Position类和接口类之后,我们是不是立刻就要着手开始写实现类了呢?按照一般的顺序是这样.但是,我们这里先停一下.原因有二: 1)既然是写一个框架,我们希望总体的功能上是全面的.实现类中,我 ...

  8. 基于Java+Selenium的WebUI自动化测试框架(十三)-----基础页面类BasePage(Excel)

    前面,我们讲了如何使用POI进行Excel的“按需读取”.根据前面我们写的BasePageX,我们可以很轻松的写出来基于这个“按需读取”的BasePage. package webui.xUtils; ...

  9. 基于Java+Selenium的WebUI自动化测试框架(十一)-----读取Excel文件(POI)(1)

    上一篇说了利用JXL的jar包来读取Excel的代码.在Java中,还可以用另外一种jar包来读取Excel的内容,那就是Apache的POI. 这里和之前一样,需要导入POI的jar包,建议导入这三 ...

随机推荐

  1. Calender设置固定时间遇到的问题

    在使用Calender获取实例,设置成UTC时区时,发现比我们常规的月份多了一个月: 示例代码如下: Calendar calendar = Calendar.getInstance(TimeZone ...

  2. 设置int、float型数据的输出格式

    设置整型输出的有效位数,比如在输出时间时时.分.秒都是两位有效数字,如果是5分钟应该输出00:05:00.需要加上头文件<iomanip> cout<<setw(2)<& ...

  3. pymysql使用心得记录

    -----------更新日志 16.7.29------------- (该记录对应文章<豆瓣电影Top250基本信息抓取  >) 折腾了将近两天才把mysql数据库功能给实现了. 经过 ...

  4. Yii2中rules验证规则

    required : 必须值验证属性 [['字段名'],required,'requiredValue'=>'必填值','message'=>'提示信息']; #说明:CRequiredV ...

  5. css2.1实现图片添加阴影效果

    盒子里面放了img标签,盒子浮动后,盒子的背景图片(就是阴影图片)会应用图片的宽高. <!DOCTYPE html> <html lang="en"> &l ...

  6. iOS开发寻找最近公共view

    新技能 #pragma mark --寻找最近公共view + (NSArray *)superViews:(UIView *)view{ if (view==nil) { return @[]; } ...

  7. 老李分享:android手机测试之适配(2)

    但 Android 版本低于 3.2 的设备不支持此技术,原因是这些设备无法将 sw600dp 识别为尺寸限定符,因此我们仍需使用 large 限定符.这样一来,就会有一个名称为 res/layout ...

  8. ElasticSearch Index API && Mapping

    ElasticSearch  NEST Client 操作Index var indexName="twitter"; var deleteIndexResponse = clie ...

  9. css form表单样式清除

    开发项目中表单常用的清楚样式: 1.改变placeholder默认字体颜色 ::-webkit-input-placeholder{color: #333;} :-moz-placeholder{co ...

  10. Git托管

    前面的话 本文将主要介绍如何使用Github来托管Git服务 SSH 大多数Git服务器都会选择使用SSH公钥来进行授权.系统中的每个用户都必须提供一个公钥用于授权 首先先确认一下是否已经有一个公钥了 ...