自动化测试~参数化

  • 介绍

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的随机数字

下面给出一个yaml格式的数据源文件,里面使用了变量${now}:

最后,userName的值将会被动态替换为时间戳。

  • freemarker

使用了该类型后,框架会把数据当作freemarker模板来进行解析。

  • properties

把参数化的具体数据会保存在文件dynamic.data.properties(放在类的跟路径)中。下面给出数据源的例子:

dynamic.data.properties的内容为:

username=suren

  • page_ref

这种类型,可以让您引用其他Page类中属性的值。

  • groovy

框架会把数据当作groovy脚本来解析。

  • javascript

框架会把数据当作javascript脚本来解析。

  • encrypt

如果您的项目中有比较敏感的数据,可以采用加密的方式。填入的是密文,框架会根据给定的密钥在使用的时候自动解密。采用该类型,需要配置文件encrypt.properties。这里要配置密钥,例如:encrypt.key=123456。

  • callback

该类型的参数化实现本身没有任何作用,但是它可以通过传递参数来使用其他任何一种参数化的实现。

  • sequence
  • 自定义

可以通过实现接口org.suren.autotest.web.framework.data.DynamicData来添加自定义的参数化实现。

  • 系列文章

自动化测试,从入门到放弃

自动化测试框架PhoenixAutotest入门

自动化测试~模块篇

自动化测试~数据源

自动化测试~参数化

自动化测试~元素定位

自动化测试框架介绍

  • 参考

本文为原创,如果您当前访问的域名不是surenpi.com,请访问“素人派”。

发表评论

电子邮件地址不会被公开。 必填项已用*标注