Selenium 34 Eucalyptus -- Eucalyptus User Console Test Framework Based on Selenium
Guidelines for contributing to se34euca project
[UI testing video: demo and discussion] (https://s3-us-west-1.amazonaws.com/eutester-ui-selenium-demo/UI+Tests+Description%2C+Python+and+Selenium+IDE+Overview+and+Demo+7-11-13+6.31+PM.mov)
Directory: ./se34euca/lib/
Description: These classes hold the implementation of operations and interactions on the UI via Selenium Web-Driver
EucaUITestLib_Base.py EucaUITestLib_Image.py EucaUITestLib_Instance.py EucaUITestLib_IP_Address.py EucaUITestLib_Keypair.py EucaUITestLib_Security_Group.py EucaUITestLib_Snapshot.py EucaUITestLib_Volume.py
Directory: ./se34euca/lib/
Description: This container class initializes the instances of the TEST LIB classes above
EucaUITester.py
Directory: ./se34euca/testcase/
Description: These classes arranges various operations in the TEST LIB classes to simulate specific user behaviors
testcase_base.py testcase_view_page.py - Test Cases for Viewing Pages testcase_instance.py - Test Cases for Instance testcase_keypair.py - Test Cases for Keypair testcase_volume.py - Test Cases for Volume testcase_snapshot.py - Test Cases for Snapshot testcase_security_group.py - Test Cases for Security Group testcase_ip_address.py - Test Cases for IP Address testcase_simulate_user.py - Test Cases for Simulate User
Directory: ./se34euca/
Description: Executables to run testcases, categorized by cloud resource groups
runtest_view_page.py runtest_instance.py runtest_keypair.py runtest_volume.py runtest_snapshot.py runtest_security_group.py runtest_ip_address.py runtest_simulate_user.py
sudo yum -y install git
git clone git://github.com/eucalyptus/se34euca.git
cd ./se34euca/etc/
./installer_se34euca_centos.py
cd ..
sudo apt-get -y install git-core
git clone git://github.com/eucalyptus/se34euca.git
cd ./se34euca/etc/
./installer_se34euca_ubuntu.py
cd ..
1 Run the command below on your console:
cd ./se34euca
export PYTHONPATH=$PYTHONPATH:/root/ui-test/se34euca
export DISPLAY=:0
- Or, add the 2 lines above to the file .bash_profile in your home directory.
2 Have the Account, User and its Password Populated.
- Se34Euca scripts do not automatically create a user for testing.
./runtest_view_page.py -i [ui_ip] -p [port] -a [accountname] -u [username] -w [password] -t [testcase]
, where [testcase] is:
[ check_login_and_logout, view_keypairs_page, view_running_page, view_volumes_page, view_secuirty_groups_page, view_all_page, view_all_page_in_loop, get_dashboard_source ]
Example.
export PYTHONPATH=$PYTHONPATH:/root/ui-test/se34euca
export DISPLAY=:0
./runtest_view_page.py -i 192.168.51.131 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t view_all_page
./runtest_view_page.py -i 192.168.51.131 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t view_keypairs_page
./runtest_view_page.py -i 192.168.51.106 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t get_dashboard_source
./runtest_view_page.py -i 192.168.51.131 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t view_all_page_in_loop
./runtest_instance.py -i [ui_ip] -p [port] -a [accountname] -u [username] -w [password] -t [testcase]
, where [testcase] is:
[ launch_instance_basic, terminate_instance_basic, terminate_instance_all ]
Example.
export PYTHONPATH=$PYTHONPATH:/root/ui-test/se34euca
export DISPLAY=:0
./runtest_instance.py -i 192.168.51.106 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t launch_instance_basic
./runtest_instance.py -i 192.168.51.106 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t terminate_instance_basic
./runtest_instance.py -i 192.168.51.158 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t terminate_instance_all
./runtest_keypair.py -i [ui_ip] -p [port] -a [accountname] -u [username] -w [password] -t [testcase]
, where [testcase] is:
[ generate_keypair, delete_keypair ]
Example.
export PYTHONPATH=$PYTHONPATH:/root/ui-test/se34euca
export DISPLAY=:0
./runtest_keypair.py -i 192.168.51.106 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t generate_keypair
./runtest_keypair.py -i 192.168.51.106 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t delete_keypair
./runtest_keypair.py -i 192.168.51.106 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t delete_keypair_all
./runtest_volume.py -i [ui_ip] -p [port] -a [accountname] -u [username] -w [password] -t [testcase]
, where [testcase] is:
[ create_volume, delete_volume, create_snapshot_from_volume ]
Example.
export PYTHONPATH=$PYTHONPATH:/root/ui-test/se34euca
export DISPLAY=:0
./runtest_volume.py -i 192.168.51.106 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t create_volume
./runtest_volume.py -i 192.168.51.106 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t delete_volume
./runtest_volume.py -i 192.168.51.106 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t create_snapshot_from_volume
./runtest_snapshot.py -i [ui_ip] -p [port] -a [accountname] -u [username] -w [password] -t [testcase]
, where [testcase] is:
[ delete_snapshot, create_volume_from_snapshot ]
Example.
export PYTHONPATH=$PYTHONPATH:/root/ui-test/se34euca
export DISPLAY=:0
./runtest_snapshot.py -i 192.168.51.106 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t delete_snapshot
./runtest_snapshot.py -i 192.168.51.106 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t create_volume_from_snapshot
./runtest_security_group.py -i [ui_ip] -p [port] -a [accountname] -u [username] -w [password] -t [testcase]
, where [testcase] is:
[ create_security_group, delete_security_group ]
Example.
export PYTHONPATH=$PYTHONPATH:/root/ui-test/se34euca
export DISPLAY=:0
./runtest_security_group.py -i 192.168.51.106 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t create_security_group
./runtest_security_group.py -i 192.168.51.106 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t delete_security_group
./runtest_security_group.py -i 192.168.51.106 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t delete_security_group_all
./runtest_ip_address.py -i [ui_ip] -p [port] -a [accountname] -u [username] -w [password] -t [testcase]
, where [testcase] is:
[ allocate_two_ip_addresses, release_ip_address ]
Example.
export PYTHONPATH=$PYTHONPATH:/root/ui-test/se34euca
export DISPLAY=:0
./runtest_ip_address.py -i 192.168.51.106 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t allocate_two_ip_addresses
./runtest_ip_address.py -i 192.168.51.106 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t release_ip_address
./runtest_simulate.py -i [ui_ip] -p [port] -a [accountname] -u [username] -w [password] -t [testcase]
, where [testcase] is:
[ simulate_user_case_00 ]
Example.
export PYTHONPATH=$PYTHONPATH:/root/ui-test/se34euca
export DISPLAY=:0
./runtest_simulate_user.py -i 192.168.51.106 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t simulate_user_case_00
./runtest_simulate_user.py -i 192.168.51.106 -p 8888 -a ui-test-acct-00 -u user00 -w mypassword1 -t simulate_user_case_00_in_loop
Please contact developers for any questions or suggestions:
Kyo Lee
Alice