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