Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from space FUNCTDEV and version SOAVIRT_9.10.5_CTP_3.1.1

...

  1. Create an empty test suite (.tst) file called TestFlowLogic.tst as follows:
    1. Right-click the Examples project node in the Test Case Explorer, then choose Add New> Test (.tst) file.
    2. Under File name, enter TestFlowLogic.
    3. Click Next.
    4. Select Empty, then click Finish.
  2. Open the test suite configuration panel by expanding the test suite, then double-clicking the Test Suite: Test Suite node.
  3. Open the Execution Options> Test Flow Logic tab.
  4. Set the Flow type to While pass/fail.
  5. Set the Maximum number of loops to 20.
  6. Change the Loop until setting to One test and Succeeds.



  7. Save the test suite configuration settings.
  8. Create a SOAP Client test as follows.
    1. Right-click the TestFlowLogic.tst> Test Suite: Test Suite node, then choose Add New> Test.
    2. In the dialog that opens, select SOAP Client, then click Finish.
  9. Configure the SOAP Client test as follows:
    1. In the test configuration panel’s WSDL tab, enter http://localhost:8080/parabank/services/store-01?wsdl for the WSDL URL.



    2. In the Request tab, set Operation to getItemByTitle.



    3. For titleKeyword, check the box, then enter PowerBuilder as the value.



    4. Save the changes to the SOAP Client test.
  10. Create a regression control for that test as follows:
    1. Right-click the SOAP Client test node and select Create/Update Regression Control.
    2. Select Create Regression Control.
    3. Click Finish.
  11. Modify the expected price in the regression control as follows:
    1. Double-click the newly-created Diff control node to open the Diff tool editor.



    2. Modify the value in the price element. The store service increases the price of the book by $1.00 after several calls to getItemByTitle, so depending on how many times you’ve ran tests in this tutorial, the current price may be different than shown.



  12. Run the current test suite by selecting the test suite node, then clicking the Test toolbar button. Even though specific tests failed, the test suite will succeed because the price entered in the expected response will be reached before looping 20 times. You can see this in the Console tab:

     


    Info
    titleHigher prices than expected?
    The more times you’ve called getItemByTitle, the more the prices will have increased. To bring prices back down, restart the Parabank server and rerun the SOAP Client that calls getItemByTitle.
  13. Double click the previously-created Diff Control node to re-open the Diff tool editor.
  14. Modify the price so that the test will loop the full 20 times before the price is reached.
  15. Run the Test Suite again. The Test Suite will fail because the price is never reached after looping 20 times.

...

  1. Select the Test Suite: Functional Tests node (created in Creating Test Suites for Unit Tests 単体テストのためのテスト スイートの作成) and click the Add Test Suite toolbar button.



  2. In the Add Test Suite wizard, click Empty, then click Finish.
  3. Double-click the new Test Suite: Test Suite node added to the test suite tree, enter Custom Scripting in the Name field in the test configuration panel, then click Save.
  4. Select the Test Suite: Custom Scripting node and click the Add test or output button.



  5. In the Add Test Wizard, select SOAP Client in the right, then click Finish. A SOAP Client tool is added to the test suite.
  6. Double-click the Test 1: SOAP Client node underneath the Test Suite: Custom Scripting node and enter Validate Price Value in the Name field in the right GUI Panel.
  7. In the WSDL tab of the test configuration panel, enter http://localhost:8080/parabank/services/store-01?wsdl in the WSDL URL field.
  8. Open the Request tab, then select getItemByTitle from the Operation drop down box.
  9. In the SOAP body tab, click getItemByTitle and enable the titleKeyword option.
  10. Choose Fixed from the drop-down menu and enter Linux as the value.
  11. Click the Save toolbar button.



  12. Right-click the Test 1: Validate Price Value node and select Add Output.
  13. In the Add Output wizard, select Response> SOAP Envelope on the left, and XML Assertor on the right, and click Finish. This tells SOAtest to chain an XML Assertor to the XML Response output of the SOAP Client.



  14. Open the Configuration tab within the XML Assertor test configuration panel, then click the Add button.
  15. In the Select Assertion dialog, expand the Value Assertion node, select Custom Assertion, and click the Next button.



    The Custom Assertion dialog then displays a tree view of the XML message from which you can select a single value to enforce.
  16. Select the price element in the XML tree view and click the Finish button.



    The test configuration tab will now be populated with a Custom Assertion.
  17. Select Jython from the Language drop-down menu.
  18. Enter the following script, which ensures that the price value is even, in the Text field of the test configuration tab:

    Code Block
    def checkPrice(input, context):
    	price = float(input)
    	if price % 2 == 0:
    		return 1
    	else:
    		return 0
  19. Select checkPrice() from the Method drop-down menu.



  20. Click the Save toolbar button.
  21. Select the Test 1 node and click the Test button. Notice that the test fails. If you double-click the test’s Traffic Viewer node, you will see that the price of the Linux book is an odd number, causing the test to fail.

...