背景
公司CD Team团队执行测试时需要填写多到10来个的表单页面,如果每个表单都靠人工一个一个去输入那势必会非常的繁琐,带来非常多的工作量,而且原来的ART工具也无法在新的站点上使用,所以急需一个类似ART的工具,有自动填写表单的功能。
Autofill 介绍
Autofill 正是一个只需要前期简单配置,便可以辅助填写表单的Chrome 浏览器插件。
Autofill 简单原理介绍
Autofill 其实是通过用户在配置界面配置的网址,控件定位方式,控件类型,控件操作内容从而通过这些信息去执行JS脚本以达到自动填充表单的目的。
安装
既然是Chrome的一个插件,那么只需要进入到Chrome网上应用商店搜索“Autofill”便可以找到,当前最新版是v7.1,这里直接给地址:https://chrome.google.com/webstore/detail/autofill/nlmmgnhgdeffjkdckmikfpnddkbbfkkk?utm_source=chrome-app-launcher-info-dialog
注意:国内需要Chrome 插件安装需要翻墙
点击【添加至CHROME】等待安装完成便可。
界面介绍
安装完Autofill 后,会在Chrome浏览器右上角出现一个闪电图标,右键图标点击选项打开Aufofill 配置界面:
Autofill配置界面相对还是比较简洁,分为四大块:
- Form Fields(表单字段):最主要的配置界面,用于配置自动填表单的信息。
- Expressions(例外):用于设置你不想自动填写表单的网页地址,支持正则。
- Other Stuff(其它标签):这里有一些高级设置,主要用于设置自动填表单规则和导入导出。
- Support(支持):这个主要是帮助文档,还有一些快捷键列表。
快速上手
Autofill 提供了非常方便的录制功能,可以快速生成配置文件。
录制
假设我们以Autofill提供的【练习表单页面】为例子:http://www.tohodo.com/autofill/form.html
1.打开页面,在需要自动填写表单的控件中(支持下拉选项框,单选框,复选框,文本框)编辑内容,例如下:
2.表单填写完后右键:Autofill --> 为此页面增加规则...
3.如果是第一次使用,那么在生成自动填充规则前,我们需要新建一个配置文件。
4.创建完或者已经选取了一个配置文件,最后直接点击 【生成自动填充规则】,这样我们就根据填写的表单生成一个配置文件,打开Autofill的设定中的表单字段可以查看到:
使用配置文件,自动填充表单
完成配置文件后,那么我们就可以使用该配置文件来进行自动化填充。
进行自动填充工具提供了两种模式既1.自动模式 2.手动模式, 默认为手动模式。
自动模式
再次去刷新【练习表单页面】,你会发现不管怎么刷新我们录制过的控件,总是会按我们录制时的情况自动填充。
手动模式
要使用手动模式,需要先到Autofill设定中的其他标签-->高级选学校中勾选【开启手动模式】。
开启手动模式后,我们再次进入到【练习表单页面】,刷新页面,这时页面表单就无法自动填充,如果想实现自动填充需要鼠标右键-->Autofill-->使用配置-->Test1,这时就可以完成自动化填表单操作。
填充时是否覆盖原来的内容
有时我们的表单中已经有包含了一些内容,我们希望在自动填充时不去修改已填充的文本框,这时我们可以打开Autofill设定找到对应的配置文件,去掉【覆盖非空字段】的勾选框便可。
配置文件导入和导出
Autofill 提供了配置文件的导入和导出功能,方便团队成员间互相分享配置。
导入和导出的入口都在其它标签里面。点击导出可以把导出的文本copy到记事本或者保存成csv文件给伙伴。 导入可以把导出的文本copy到文本框点击导入完成。 同时导出支持替换和追加,替换就是把自己原来的配置都删除,玩玩全全使用导入的配置,追加则在原有的配置基础上添加新导入的配置。
增强配置文件
让同一个配置支持多个站点
如果A,B两个网站存在相同的表单(空间定位方式也一样),而你又不想因此建立多个配置文件,那么可以修改配置文件中的站点,使之支持多个网站。 修改规则只需要添加 “|”后跟上其它站点地址。 例如下:
内容变量设置
通过录制生成的配置文件中【内容】项是个固定值,然后实际使用中我们往往需要一些随机数或者变量,例如创建账号的表单,总是希望每次自动填表单自动生成的用户名都是不一样的,那么Autofill提供了4种变量设置。
随机数
随机数生成分成纯数字和数字与字符串结合两种方式,语法如下:
1.随机生成N位数字: {#N}
2.随机生成N位字符串: {$N}
递增 or 递减
递增:{1++}
递减:{1000--}
随机选取某个选项
从某些选项中随机选取一个,进行填写表单。 例如随机从a,b,c,d中选取一个: {a|b|c|d}
获取规则表中的值
也许我们会有这么场景,我们的确认密码文本框的值,必须等于文本框的值,那么其实我们可以通过Autofill提供的获取规则表中的值来解决,这里主要提供了获取配置文件中【名称】【内容】的值。
例如下图:通过{v7} 来获取 上一个内容的值,当然如果想获取名称里面的值,只需要{n7}便可,每个【名称】和【内容】框的右上角都会对应一个值,而且唯一。
个性化定制
Autofill 提供了个性化定制或者说提供了执行JS的功能,我们可以写一段JS 放入配置文件中,那么配置文件被执行时会自动执行这段JS。
具体步骤如下图:
- 点击 + 号图标,添加一条配置
- 类型全球JavaScript类型
- 在内容中把调试通过的JS黏贴进去
- 配置要执行JS的站点
执行效果:
补充:在录制生成或者手工编写的配置中的【名称】既定位方式,其匹配优先级由高到底为:name,id,placeholder,title,class,同时可以使用正则表达式。
小结
与手工对比优势:
- 节约大量时间,由原来纯手工测试1个case半小时左右的执行时间缩短到只需要10分钟左右。
- 可以预先设置规则
- 避免重复操作
与ART对比优势:
- 支持medicare网站
- 通用性更强
- 更容易维护
不足:
- 缺乏快捷键选取配置文件
- 值支持原生JS,不支持jquery等框架
更多详细帮助,可以参考Autofill在线帮助文档:http://www.tohodo.com/autofill/help-chrome.html