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

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

主站蜘蛛池模板: 共和县| 桐柏县| 清远市| 芦山县| 长兴县| 青铜峡市| 信阳市| 潼关县| 旌德县| 诸暨市| 基隆市| 剑川县| 万宁市| 启东市| 航空| 新乡县| 合水县| 泰顺县| 永昌县| 含山县| 广东省| 军事| 四会市| 渭南市| 定边县| 博爱县| 靖西县| 泾川县| 曲沃县| 清流县| 巫溪县| 宁夏| 富锦市| 庐江县| 宜兴市| 新邵县| 桑植县| 博兴县| 竹溪县| 娄底市| 沙雅县|