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. 小故事理解TCP/IP连接时的三次握手

    在TCP/IP协议中,TCP协议通过三次握手建立一个可靠的连接,示意图如下: 下面通过一个小故事简单理解一下这三次握手的具体含义: 一天,快递员小客(客户端)准备去小服(服务器)家去送快递(准备与服务 ...

  2. “Dynamic Web Module 3.0 requires Java 1.6 or newer.”错误 (转别人)

    eclipse maven 在项目的pom.xml的<build></build>标签中加入: <plugins> <plugin> <group ...

  3. Omi框架学习之旅 - Hello World 及原理说明

    学什么东西都从hello world开始, 我也不知道为啥. 恩,先上demo代码, 然后提出问题, 之后解答问题, 最后源码说明. hello world - demo: class Hello e ...

  4. 打印zigzag矩阵

    比较愚蠢但是很好理解的一种方法 public static void printZigzag (int n){ int[][] arr = new int[n][]; //动态创建数组 并初始化 fo ...

  5. 查看 NDK 版本

    打开Android Studio , 打开左上角的菜单, File => Settings...  打开一个弹窗. 然后在 Appearance & Behavior =>Syst ...

  6. Linux系统date命令的参数及获取时间戳的方法

    date指令相关用法示例 date 用法: date [OPTION]... [+FORMAT]date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] ...

  7. ATL dll注册失败

    “生成”->“生成解决方案”或“重新生成解决方案”,在注册时,报错:regisvr32 /r/c " C:\Users\Administrator\Desktop\复件DrvWater ...

  8. STM32位带操作总结---浅显易懂

    正在准备做毕业设计,配置LED_Config()的时候,又看到了位带操作的宏定义,我又嘀咕了,什么是位带操作,一年前在使用位带操作的时候,就查阅过好多资料,Core-M3也看过,但是对于博主这种“低能 ...

  9. C语言常见错误笔记

    1. 职业化的程序员起码要具备两点: 1)基本的软件技能 2)不犯低级的错误 2. 修改函数的形参是没用的,函数本身占用的存储单元在堆栈中分配,入口参数的值会在函数入口处拷贝到堆栈中,一旦函数返回,其 ...

  10. ajax大洋第一步

    Ajax工具包 Ajax并不是一项新技术,它实际上是几种技术,每种技术各尽其职,以一种全新的方式聚合在一起. 服务器端语言:服务器需要具备向浏览器发送特定信息的能力.Ajax与服务器端语言无关. XM ...