Hi All,

The WSO2 Test Automation Framework is currently using three different
property files to read the context needed for executing automation tests.

1. automation.property
2. TenantList.csv
3. UserList.csv

The main objective of the above property files is to provide

1. Environment details.
2. Endpoint details (Servers and server URLs)
3. User details.
4. Environment based settings

In to automation framework to build the environment for the automated test
execution.

But with the new refactoring effort of the automation core API we are
planning to give much user friendly API and easy to manage set of
configurations through a single configuration file.

The challenge is bundling all above requirements in a single configuration
file with maximum level of readability and manageability.

At the moment we have derived a XML configuration file based on the inputs
from our previous code reviews and discussions with Azeez. And your valued
inputs are welcome for coming out with an optimized config for the
automation API.


I'm  attaching the derived configuration file with this mail and will post
the whole XML in-line with the mail as well.

Your valued inputs are welcome.

Thank You,
Dharshana.


-- 

Dharshana Warusavitharana
Senior Software Engineer , Test Automation
WSO2 Inc. http://wso2.com
email : [email protected] <[email protected]>
cell : +94772202595
blog : http://dharshanaw.blogspot.com

lean . enterprise . middleware
<!--

  ~  Copyright (c) 2005-2010, WSO2 Inc. (http://wso2.com) All Rights Reserved.
  ~
  ~  WSO2 Inc. licenses this file to you under the Apache License,
  ~  Version 2.0 (the "License"); you may not use this file except
  ~  in compliance with the License.
  ~  You may obtain a copy of the License at
  ~
  ~    http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~  Unless required by applicable law or agreed to in writing,
  ~  software distributed under the License is distributed on an
  ~  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~  KIND, either express or implied.  See the License for the
  ~  specific language governing permissions and limitations
  ~  under the License.

-->
<autoConfig>
    <!--  =================================================  -->
    <!--                   Parameters                        -->
    <!--  =================================================  -->
    <!--
     Change this to edit wait time for test artifact deployment
    -->
    <parameter name="deployment.delay">60000</parameter>
    <!--
     Change this to product|platform/cloud to execute test on specific environment
    -->
    <parameter name="execution.environment">product</parameter>
    <!--
     Change this to user/tenant to execute test with user mode or tenant mode
    -->
    <parameter name="execution.mode">user</parameter>
    <!--
     Change this to true if you want to enable cloud mode
    -->
    <parameter name="cloud.enable">true</parameter>
    <!--
     Change this to true if you want to enable to run tests on clustered environment
    -->
    <parameter name="clustering">false</parameter>
    <!--
     Change this to true if you want to generate coverage statistics
    -->
    <parameter name="coverage">true</parameter>
    <!--
     Change this to true if you want to enable framework dashboard
    -->
    <parameter name="framework.dashboard">false</parameter>
    <!--
     Browser type with used by framework to execute UI test, supported types - chrome|firefox|opera|ie|htmlUnit
    -->
    <browserManager>
        <!-- Change to enable remote webDriver -->
        <remoteDriver enable="true">
            <!-- URL of remote webDriver server  -->
            <remoteDirverUrl url="http://10.100.2.51:4444/wd/hub/"/>
        </remoteDriver>
        <!-- Type of the browser selenium tests are running" -->
        <browser type="firefox">
            <!--
            path to webDriver executable - required only for chrome
            -->
            <parameter name="webdriver.path">/home/test/name/webDriver</parameter>
        </browser>
    </browserManager>
    <!--
    Database configuration to be used for data service testing. DB configuration in dbs files will be replaced with
               below configuration at test run time
    -->
    <dbConfig>
        <configuration name="dataService">
            <url>jdbc:h2:testDB</url>
            <username>wso2carbon</username>
            <password>wso2carbon</password>
            <driverClassName>org.h2.Driver</driverClassName>
        </configuration>
        <configuration name="testDashboard">
            <url>jdbc:mysql://127.0.0.1:3306/FRAMEWORK_DB</url>
            <username>root</username>
            <password>root</password>
            <driverClassName>com.mysql.jdbc.Driver</driverClassName>
        </configuration>
        <configuration name="rss">
            <username>testUser1</username>
            <password>testUser1</password>
        </configuration>
    </dbConfig>
    <security>
        <!--
                    KeyStore which will be used for encrypting/decrypting passwords
                    and other sensitive information.
        -->
        <keyStore>
            <!--  Keystore file location -->
            <fileName>wso2carbon.jks</fileName>
            <!--  Keystore type (JKS/PKCS12 etc.) -->
            <type>JKS</type>
            <!--  Keystore password -->
            <password>wso2carbon</password>
            <!--  Private Key alias -->
            <keyAlias>wso2carbon</keyAlias>
            <!--  Private Key password -->
            <keyPassword>wso2carbon</keyPassword>
        </keyStore>
        <!--
                    System wide trust-store which is used to maintain the certificates of all
                    the trusted parties.
        -->
        <trustStore>
            <!--  trust-store file location  -->
            <fileName>client-truststore.jks</fileName>
            <!--  trust-store type (JKS/PKCS12 etc.)  -->
            <type>JKS</type>
            <!--  trust-store password  -->
            <password>wso2carbon</password>
        </trustStore>
    </security>
    <p2Repo>
        <parameter repo-id="online-repository">https://wso2.org/repo</parameter>
        <parameter repo-id="file-repository">file:///home/krishantha/test</parameter>
    </p2Repo>
    <!--
               System wide users who to be registered at the test initiation
    -->
    <userManager>
        <tenant key="testten1" domain="carbon.super">
            <!-- superTenant element illustrates this tenant will act as a super tenet -->
            <superTenant>true</superTenant>
            <tenantAdmin>
                <userName>admin</userName>
                <password>admin</password>
            </tenantAdmin>
            <tenantUsers>
                <user key="user1">
                    <userName>test1</userName>
                    <password>123</password>
                </user>
                <user key="user2">
                    <userName>test1</userName>
                    <password>123</password>
                </user>
            </tenantUsers>
        </tenant>
        <tenant key="testten1" domain="test.domain">
            <tenantAdmin>
                <userName>testadmin</userName>
                <password>admin123</password>
            </tenantAdmin>
            <tenantUsers>
                <user key="user1">
                    <userName>test1</userName>
                    <password>123</password>
                </user>
                <user key="user2">
                    <userName>test2</userName>
                    <password>123</password>
                </user>
            </tenantUsers>
        </tenant>
    </userManager>
    <!--
   This section will initiate the initial deployment of the platform required by
   the test suites.
-->
    <platform>
        <product id="AS">
            <!--
            cluster instance details to be used to platform test execution
            -->
            <cluster>
                <!--
                     List of workers which will assign id the suite is directed to execute
                         in a clustered environment with worker manager separation
                -->
                <!--Types worker/manager/lb_worker/lb_manager-->
                <instance name="asw001" type="worker">
                    <host>localhost</host>
                    <httpport>9764</httpport>
                    <httpsport>9444</httpsport>
                    <webContext>/</webContext>
                </instance>
                <instance name="asw002" type="worker">
                    <host>localhost</host>
                    <httpport>9764</httpport>
                    <httpsport>9444</httpsport>
                    <webContext>/</webContext>
                </instance>
                <!--
                    List of managers which will assign id the suite is directed to execute
                        in a clustered environment with worker manager separation
                   -->
                <instance name="asm001" type="manager">
                    <host>localhost</host>
                    <httpport>9764</httpport>
                    <httpsport>9444</httpsport>
                    <webContext>/</webContext>
                </instance>
                <instance name="asm002" type="manager">
                    <host>localhost</host>
                    <httpport>9764</httpport>
                    <httpsport>9444</httpsport>
                    <webContext>/</webContext>
                </instance>
                <!--Configuration of the fronted LB on a LB fronted deployment-->
                <instance name="lbw001" type="lb_worker">
                    <host>localhost</host>
                    <httpport>9763</httpport>
                    <httpsport>9443</httpsport>
                    <webContext>/</webContext>
                </instance>
                <instance name="lbm001" type="lb_manager">
                    <host>localhost</host>
                    <httpport>9765</httpport>
                    <httpsport>9445</httpsport>
                    <webContext>/</webContext>
                </instance>
            </cluster>
            <!--
            Product instance details to be used for integration test level
            -->
            <instances>
                <!--Types individual/lb-->
                <instance type="individual" id="001">
                    <host>localhost</host>
                    <httpport>9764</httpport>
                    <httpsport>9444</httpsport>
                    <webContext>/</webContext>
                </instance>
                <instance type="individual" id="002">
                    <host>localhost</host>
                    <httpport>9763</httpport>
                    <httpsport>9443</httpsport>
                    <webContext>/</webContext>
                </instance>
                <instance type="lb" id="lb002">
                    <host>localhost</host>
                    <httpport>9763</httpport>
                    <httpsport>9443</httpsport>
                    <webContext>/</webContext>
                </instance>
            </instances>
        </product>
        <product id="ESB">
            <cluster>
                <instance name="esbw001" type="instance">
                    <host>localhost</host>
                    <httpport>9764</httpport>
                    <httpsport>9444</httpsport>
                    <webContext>/</webContext>
                </instance>
                <instance name="esbw002" type="instance">
                    <host>localhost</host>
                    <httpport>9764</httpport>
                    <httpsport>9444</httpsport>
                    <webContext>/</webContext>
                </instance>
                <instance name="esbm001" type="manager">
                    <host>localhost</host>
                    <httpport>9764</httpport>
                    <httpsport>9444</httpsport>
                    <webContext>/</webContext>
                </instance>
                <instance name="esbm002" type="manager">
                    <host>localhost</host>
                    <httpport>9764</httpport>
                    <httpsport>9444</httpsport>
                    <webContext>/</webContext>
                </instance>
                <instance name="lbw001" type="lb_worker">
                    <host>localhost</host>
                    <httpport>9763</httpport>
                    <httpsport>9443</httpsport>
                    <webContext>/</webContext>
                </instance>
                <instance name="lbm001" type="lb_manager">
                    <host>localhost</host>
                    <httpport>9765</httpport>
                    <httpsport>9445</httpsport>
                    <webContext>/</webContext>
                </instance>
            </cluster>
            <instances>
                <instance type="individual" id="in001">
                    <host>localhost</host>
                    <httpport>9764</httpport>
                    <httpsport>9444</httpsport>
                    <webContext>/</webContext>
                </instance>
                <instance type="individual" id="in002">
                    <host>localhost</host>
                    <httpport>9763</httpport>
                    <httpsport>9443</httpsport>
                    <webContext>/</webContext>
                </instance>
                <instance type="lb" id="lb002">
                    <host>localhost</host>
                    <httpport>9763</httpport>
                    <httpsport>9443</httpsport>
                    <webContext>/</webContext>
                </instance>
            </instances>
        </product>
    </platform>
</autoConfig>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to