参数化
简介
PhoenixAutotest中的参数化技术,包括了对元素定位、数据源的参数化。对于元素定位的参数化,有的场景下同一个页面中的同一个元素在不同的流程中定位方法是不一样的。这时候,为了能够尽可能地复用脚本实现动态定位元素,就需要用到元素定位的参数化。
在自动化测试脚本的编写过程中,可能需要用到很多数据,而某些数据可能是动态变化的、有规律的(例如:手机、邮箱、身份证等)、不关心具体内容的。这时候,就需要用到参数化来提高脚本的可复用性。简单来说,就是把脚本中可变的部分写在其他地方,避免了要经常修改脚本的工作。
类型
PhoenixAutotest框架支持很多中类型的参数化,也能满足大多数的情况。但,除此之外用户还可以很方便地进行扩展、自定义;当然自定义部分,您可以看后面的章节。 这里的类型包括:simple、freemarker、properties、page_ref、groovy、javascript、encrypt、callback、sequence等。
simple
顾名思义,simple为简单实现的一种参数化。可以使用的变量包括:日期、身份证号码、电子邮件、邮编、随机数字等。
${now}
是当前日期的时间戳,为数字形式的日期
${now yyyy}
年份字符串,例如:2017
${now MM-dd}
年份字符串,例如:3-26
${now yyyy-MM-dd}
年份字符串,例如:2017-3-26
${now MM-dd HH:mm}
年份字符串,例如:3-26 12:00
${now yyyy-MM-dd HH:mm:ss}
年份字符串,例如:2017-3-26 12:00:00
${id_card}
身份证号码
${email}
电子邮件
${phone}
手机号码
${postcode}
邮编
${random-60}
随机数字,从0-60的随机数字
freemarker
使用了该类型后,框架会把数据当作freemarker模板来进行解析。
properties
把参数化的具体数据会保存在文件dynamic.data.properties中。
system
这个是全局的参数配置。数据配置在文件system.data.properties中。
random_text
通过该参数化,您可以把数据存放在data目录下的一个txt文本文件中,会随机返回一行文本字符串。
page_ref
这种类型,可以让您引用其他Page类中属性的值。
groovy
框架会把数据当作groovy脚本来解析。
javascript
框架会把数据当作javascript脚本来解析。
encrypt
如果您的项目中有比较敏感的数据,可以采用加密的方式。填入的是密文,框架会根据给定的密钥在使用的时候自动解密。采用该类型,需要配置文件encrypt.properties。这里要配置密钥,例如:encrypt.key=123456
。
callback
该类型的参数化实现本身没有任何作用,但是它可以通过传递参数来使用其他任何一种参数化的实现。
sequence
自定义
可以通过实现接口org.suren.autotest.web.framework.data.DynamicData
来添加自定义的参数化实现。