Some random feedback ..

#1: In general, in XML languages when you have a foo element child elements
should not say fooChild. You have:

<remoteDriver enable="true">
            <!-- URL of remote webDriver server  -->
            <remoteDirverUrl url="http://10.100.2.51:4444/wd/hub/"/>
        </remoteDriver>

That should be:

<remoteDriver enable="true">
  <url>url</url>
</remoteDriver>

Or better yet,

<remoteDriver enable="true" url="...."/>

However that particular style makes it impossible to have a validating XML
schema because (I assume) if enable=false there cannot be a URL .. that's a
co-occurrence constraint and XML Schema doesn't support that.

#2: Using <parameter> vs. actual elements. IMO <parameter> makes sense only
in places where there's a fixed schema and you need an extension mechanism.
If you're creating a new language (like you are) then IMO saying

<autoConfig>
  <deployment.delay>..</deployment.delay>
</autoConfig>

is nicer than

<autoConfig>
  <parameter name="deployment.delay">..</parameter>
</autoConfig>

Now, while deployment.delay etc. maybe ok for parameter names, it looks
weird for child elements.

Note that the above works even with secure vault:

<deployment.delay>{vault-lookup('deployment.delay')}</deployment.delay>

#3: What is <autoConfig>??

#4: The tenant user stuff looks a bit fishy .. can we avoid storing even
test user passwords in the clear?

I don't have a good conceptual understanding of where this fits in to give
proper detailed feedback. Please set up a time for a quick intro sometime
next week if possible!

Thanks,

Sanjiva.

On Fri, Aug 2, 2013 at 10:59 AM, Dharshana Warusavitharana <
[email protected]> wrote:

> Posting configuration inlign
>
> <!--
>
>   ~  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>
>
>
> Thank You,
> Dharshana.
>
>
> On Fri, Aug 2, 2013 at 9:02 AM, Dharshana Warusavitharana <
> [email protected]> wrote:
>
>> 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
>>
>
>
>
> --
>
> 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
>
> _______________________________________________
> Architecture mailing list
> [email protected]
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
Sanjiva Weerawarana, Ph.D.
Founder, Chairman & CEO; WSO2, Inc.;  http://wso2.com/
email: [email protected]; phone: +94 11 763 9614; cell: +94 77 787 6880 | +1
650 265 8311
blog: http://sanjiva.weerawarana.org/

Lean . Enterprise . Middleware
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to