官术网_书友最值得收藏!

Setting properties from an external file

It can be a good idea to maintain your properties externally to your SoapUI project. This can help make your projects more flexible when switching between target environments, especially when running SoapUI from scripts (see Chapter 5, Automation and Scripting). In this recipe, we will see how to do this using the Properties TestStep.

Getting ready

I have added a sample properties file called test-properties.txt, which contains the following code:

environmentName=Dev Test
invoiceEndpoint=http://localhost:9000
userName=test
password=password

There is a completed sample project called PropertiesProject in the Chapter 2 samples.

How to do it...

First, we create a new empty project, TestSuite and TestCase. Then, we add a Property TestStep to read the properties from the test-properties.txt file using a project property to store the file's path. Finally, we write a Groovy TestStep to use property expansions to access the loaded property values from the Property TestStep, and we then return and log the values. Perform the following steps:

  1. Create new Generic Project with empty TestSuite and TestCase.
  2. Create a property on the project called propertiesFile with the value /soapui-cookbook/chapter2/test-properties.txt.
  3. Create new Property TestStep. You only need to populate the Load From box with ${#Project#propertiesFile}, which refers to the previous project's property.
  4. Create a new Groovy TestStep, which contains the following code:
    def propertiesFile = context.expand('${#Project#propertiesFile}')
    def environmentName = context.expand('${LoadProperties#environmentName}')
    def invoiceEndpoint = context.expand('${LoadProperties#invoiceEndpoint}')
    def userName = context.expand('${LoadProperties#userName}')
    def password = context.expand('${LoadProperties#password}')
    
    return "propertiesFile: ${propertiesFile} environmentName: ${environmentName} invoiceEndpoint=${invoiceEndpoint} userName=${userName} password=${password}"
  5. Now, run the TestCase, and you should see the property data from the file in the TestCase log!

How it work...

The Properties TestStep is parameterized to take its filename from a project-level property called propertiesFile. This is done for easy switching; for example, you can have several properties files, one for each test environment.

The Groovy TestStep is just there for demo purposes and to illustrate the use of property expansions to access the properties loaded by the Property TestStep. This step can easily be replaced by a web service request TestStep, taking the endpoint and credentials as property expansions.

The main learning is that you can avoid hardcoding parameters, and to do this, it's important to have a grasp of the ways to use properties in SoapUI.

See also

主站蜘蛛池模板: 张家港市| 上虞市| 贵南县| 嘉黎县| 永仁县| 襄樊市| 内丘县| 宿松县| 且末县| 南昌县| 库尔勒市| 铜山县| 望江县| 阳东县| 丰宁| 井冈山市| 罗甸县| 舟曲县| 光山县| 四川省| 洛扎县| 泸定县| 夹江县| 罗江县| 龙里县| 平昌县| 巴塘县| 大悟县| 西华县| 大丰市| 彩票| 堆龙德庆县| 安多县| 西宁市| 惠州市| 青浦区| 迁安市| 明星| 鱼台县| 平阳县| 青铜峡市|