SoapUI的变量可以Project,TestSuite,TestCase,TestStep中的Properties步骤这四个地方进行定义,那我们定义变量的时候遵循什么原则呢
Project 层级
也是工程级别的变量,一般以下几种类型定义Project Properties比较合适:
- 域名,数据库,登录账号等等一些环境基础信息相关的变量
- 业务变量的值不是动态查询出来的
– 上述两种是不同环境需要人工输入,所以定义在工程级别最方便修改 - 业务变量的值可通过测试步骤查询出来但是整个工程都可以通用的
– 这种变量的值通过测试步骤script脚本可回写到工程级别
// 测试步骤中的值回写到工程级别
testRunner.testCase.testSuite.project.setProperties('变量名','变量值')
TestSuite层级
测试套级别的变量通常也定义下属测试用例共用的参数,这些参数的值不随环境变化而变化。
测试用例之间有数据有关联关系时,可以将上一用例的变量值回写到测试套级别,后续的用例都可以使用。这种用例耦合度高,执行顺序和成功率都有依赖,一般不推荐。
// 测试步骤中的值回写到工程级别
testRunner.testCase.testSuite.setProperties('变量名','变量值')
TestCase层级
测试用例级别的变量一般使用较少,通常测试步骤中的Properties可以替代此类参数定义
TestStep的Properties
使用范围只在本测试用例的参数一般都定义在Properties中,一个接口请求参数可能非常多,什么样参数的值适合定义变量,可以参考以下的原则:
- 每次执行变量值都要不同的参数,比如保存类接口中对应数据库主键的参数。若不定义成变量,那我们的用例将无法重复执行,或执行会产生垃圾数据的。
- 参数值在用例的多个步骤中的请求参数或断言中有使用,这个是为了方便用例维护,变量值修改,只需要在Properties的定义中改变,用例步骤中的参数值都会自动更新。