这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added vatus/__pycache__/settings.cpython-34.pyc
Binary file not shown.
56 changes: 56 additions & 0 deletions vatus/bussiness_running.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import unittest, time
import testcases.test_bussiness.test_login_management.test_E70_user_login as test_E70_user_login
import testcases.test_bussiness.test_login_management.test_E71_user_modify_password_and_logout as test_E71_user_modify_password_and_logout
import testcases.test_bussiness.test_login_management.test_E72_reset_password as test_E72_reset_password
import testcases.test_bussiness.test_login_management.test_E73_modify_personal_information as test_E73_modify_personal_information
import testcases.test_bussiness.test_user_management.test_E79_create_staff as test_E79_create_staff
import testcases.test_bussiness.test_user_management.test_E81_delete_staff as test_E81_delete_staff
import testcases.test_bussiness.test_user_management.test_E82_reset_staff_password as test_E82_reset_staff_password
import testcases.test_bussiness.test_user_management.test_E83_modify_the_staff_information as test_E83_modify_the_staff_information
import testcases.test_bussiness.test_user_management.test_E112_create_administrator as test_E112_create_administrator
import testcases.test_bussiness.test_user_management.test_E139_delete_administrator as test_E139_delete_administrator
import testcases.test_bussiness.test_user_management.test_E142_disable_enable_administrator as test_E142_disable_enable_administrator


def load_testcase(suites, tc, running_cases_list):
for running_case in running_cases_list:
if tc._tests[0]._tests[0]._testMethodName in running_case:
print("O - %s " % (tc._tests[0]._tests[0]._testMethodName))
suites.append(tc)
return
print("X - %s " % (tc._tests[0]._tests[0]._testMethodName))

##############################################
# 转化testlink导出的用例编号格式
##############################################
running_cases_list = []
running_cases = open('running_cases')
for case in running_cases.readlines():
if case != '\n':
running_cases_list.append("test_" + case.strip().replace('-', '').replace(':', '_'))
running_cases.close()

##############################################
# 注册待执行的测试用例自动化脚本
##############################################
print("=============================== Start to register TC ==============================")
suites = []
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E70_user_login), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E71_user_modify_password_and_logout), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E72_reset_password), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E73_modify_personal_information), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E79_create_staff), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E81_delete_staff), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E82_reset_staff_password), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E83_modify_the_staff_information), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E112_create_administrator), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E139_delete_administrator), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E142_disable_enable_administrator), running_cases_list)

print("============================ VinzorBE Auto Test Report ============================")
print("Total Selected Testcases: %d" % len(suites))
time.sleep(2)

test_suites = unittest.TestSuite(suites)
unittest.TextTestRunner(verbosity=2).run(test_suites)

60 changes: 60 additions & 0 deletions vatus/education_running.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
import unittest, time
import testcases.test_education.test_login_management.test_E70_user_login as test_E70_user_login
import testcases.test_education.test_login_management.test_E71_user_modify_password_and_logout as test_E71_user_modify_password_and_logout
import testcases.test_education.test_login_management.test_E72_reset_password as test_E72_reset_password
import testcases.test_education.test_login_management.test_E73_modify_personal_information as test_E73_modify_personal_information
import testcases.test_education.test_user_management.test_E79_create_student as test_E79_create_student
import testcases.test_education.test_user_management.test_E81_delete_student as test_E81_delete_student
import testcases.test_education.test_user_management.test_E82_reset_student_password as test_E82_reset_student_password
import testcases.test_education.test_user_management.test_E83_modify_the_students_information as test_E83_modify_the_students_information
import testcases.test_education.test_user_management.test_E85_create_teacher as test_E85_create_teacher
import testcases.test_education.test_user_management.test_E87_delete_teacher as test_E87_delete_teacher
import testcases.test_education.test_user_management.test_E88_modify_the_teachers_information as test_E88_modify_the_teachers_information
import testcases.test_education.test_user_management.test_E89_disable_enable_teacher as test_E89_disable_enable_teacher
import testcases.test_education.test_user_management.test_E112_create_administrator as test_E112_create_administrator
import testcases.test_education.test_user_management.test_E139_delete_administrator as test_E139_delete_administrator
import testcases.test_education.test_user_management.test_E142_disable_enable_administrator as test_E142_disable_enable_administrator


def load_testcase(suites, tc, running_cases_list):
for running_case in running_cases_list:
if tc._tests[0]._tests[0]._testMethodName in running_case:
suites.append(tc)
break

##############################################
# 转化testlink导出的用例编号格式
##############################################
running_cases_list = []
running_cases = open('running_cases')
for case in running_cases.readlines():
if case != '\n':
running_cases_list.append("test_" + case.strip().replace('-', '').replace(':', '_'))
running_cases.close()
suites = []

##############################################
# 注册待执行的测试用例自动化脚本
##############################################
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E70_user_login), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E71_user_modify_password_and_logout), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E72_reset_password), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E73_modify_personal_information), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E79_create_student), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E81_delete_student), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E82_reset_student_password), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E83_modify_the_students_information), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E85_create_teacher), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E87_delete_teacher), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E88_modify_the_teachers_information), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E89_disable_enable_teacher), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E112_create_administrator), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E139_delete_administrator), running_cases_list)
load_testcase(suites, unittest.TestLoader().loadTestsFromModule(test_E142_disable_enable_administrator), running_cases_list)

print("======================= VinzorEE Auto Test Report =======================")
print("Total Testcases: %d" % len(suites))
time.sleep(2)

test_suites = unittest.TestSuite(suites)
unittest.TextTestRunner(verbosity=2).run(test_suites)
2 changes: 2 additions & 0 deletions vatus/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# database
selenium==3.3.0
16 changes: 16 additions & 0 deletions vatus/running_cases
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
E-70:user_login
E-71:user_modify_password_and_logout
E-72:reset_password
E-73:modify_personal_information
E-112:create_administrator
E-79:create_student
E-85:create_teacher
E-87:delete_teacher
E-89:disable_enable_teacher
E-82:reset_student_password
E-83:modify_the_students_information
E-88:modify_the_teachers_information
E-112:create_administrator
E-79:create_student
E-85:create_teacher
E-73:modify_personal_information
18 changes: 18 additions & 0 deletions vatus/settings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# -*- coding: utf-8 -*-

######################################################################################
# 参数说明:
# base_url 待测系统的登录地址
# web_types 兼容性测试的浏览器类型,目前支持firefox、chrome,IE兼容性有问题需要单独脚本
######################################################################################
test_parameters = {'education_base_url': 'http://172.18.215.121/auth/login?next=%2F',
'bussiness_base_url': 'http://172.18.215.122/auth/login?next=%2F',
'web_types': ['firefox'],
# login
'admin_username': 'admin',
'admin_password': 'admin123',
# image management
'image_instance_imagename': "win7_64",
'image_instance_flavorname': "2VCPU|3072MB|60GB",
'image_instance_netname': '内部网络'
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# -*- coding: utf-8 -*-
import time
import unittest
import win32api
import win32con
from selenium import webdriver
import settings


class Login(unittest.TestCase):
def setUp(self):
self.driver = None
self.base_url = settings.test_parameters.get("bussiness_base_url")

def test_E70_user_login(self):
web_types = settings.test_parameters.get("web_types")
for web_type in web_types:
if web_type == 'firefox':
self.driver = webdriver.Firefox()
elif web_type == 'chrome':
self.driver = webdriver.Chrome()

self.driver.implicitly_wait(30)
driver = self.driver
driver.get(self.base_url)
driver.maximize_window()
###########################################
# 步骤1:用户名密码为空
###########################################
driver.find_element_by_id("input_username").clear()
driver.find_element_by_id("input_password").clear()
driver.find_element_by_id("login_btn").click()
username_text = driver.find_element_by_id("input_username-error").text
self.assertEqual("用户名不能为空", username_text)
password_text = driver.find_element_by_id("input_password-error").text
self.assertEqual("密码不能为空", password_text)
###########################################
# 步骤2:用户名和密码为空格
###########################################
driver.find_element_by_id("input_username").clear()
driver.find_element_by_id("input_username").send_keys(" ")
driver.find_element_by_id("input_password").clear()
driver.find_element_by_id("input_password").send_keys(" ")
driver.find_element_by_id("login_btn").click()
username_text = driver.find_element_by_id("input_username-error").text
self.assertEqual("用户名不能为空", username_text)
password_text = driver.find_element_by_id("input_password-error").text
self.assertEqual("密码不能为空", password_text)
###########################################
# 步骤3:用户名长度超过64个字符
###########################################
driver.find_element_by_id("input_username").clear()
driver.find_element_by_id("input_username").send_keys("12345678901234567890123456789012345678901234567890123456789012345")
driver.find_element_by_id("login_btn").click()
username_text = driver.find_element_by_id("input_username-error").text
self.assertEqual("用户名长度为1~64个字", username_text)
###########################################
# 步骤4:密码长度小于5个字符和超过64个字符
###########################################
driver.find_element_by_id("input_password").clear()
driver.find_element_by_id("input_password").send_keys("12345678901234567890123456789012345678901234567890123456789012345")
driver.find_element_by_id("login_btn").click()
password_text = driver.find_element_by_id("input_password-error").text
self.assertEqual("密码长度为5~64个字", password_text)
driver.find_element_by_id("input_password").clear()
driver.find_element_by_id("input_password").send_keys("1234")
driver.find_element_by_id("login_btn").click()
password_text = driver.find_element_by_id("input_password-error").text
self.assertEqual("密码长度为5~64个字", password_text)
###########################################
# 步骤5:输入正确用户名,密码输入错误,点击登录
###########################################
driver.find_element_by_id("input_username").clear()
driver.find_element_by_id("input_username").send_keys("admin")
driver.find_element_by_id("input_password").clear()
driver.find_element_by_id("input_password").send_keys("te$5ffd")
driver.find_element_by_id("login_btn").click()
time.sleep(1)
login_text = driver.find_element_by_id("login_state").text
self.assertEqual("错误用户名或密码", login_text)
###########################################
# 步骤6:输入不存在的用户名,密码随意
###########################################
driver.find_element_by_id("input_username").clear()
driver.find_element_by_id("input_username").send_keys("hahaha")
driver.find_element_by_id("input_password").clear()
driver.find_element_by_id("input_password").send_keys("admin123")
driver.find_element_by_id("login_btn").click()
time.sleep(1)
login_text = driver.find_element_by_id("login_state").text
self.assertEqual("错误用户名或密码", login_text)

caps = win32api.GetKeyState(win32con.VK_CAPITAL)
if caps == 0 or caps == -128:
win32api.keybd_event(win32con.VK_CAPITAL, 0, 0, 0)
###########################################
# 步骤7:打开大写键盘
###########################################
driver.find_element_by_id("input_password").clear()
driver.find_element_by_id("input_password").click()
win32api.keybd_event(70, 0, 0, 0)
time.sleep(1)
login_text = driver.find_element_by_id("login_state").text
self.assertEqual("键盘大写锁定打开,请注意大小写", login_text)
caps = win32api.GetKeyState(win32con.VK_CAPITAL)
if caps == 0 or caps == -128:
win32api.keybd_event(win32con.VK_CAPITAL, 0, 0, 0)
win32api.keybd_event(win32con.VK_CAPITAL, 0, win32con.KEYEVENTF_KEYUP, 0)
else:
win32api.keybd_event(win32con.VK_CAPITAL, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(win32con.VK_CAPITAL, 0, 0, 0)
win32api.keybd_event(win32con.VK_CAPITAL, 0, win32con.KEYEVENTF_KEYUP, 0)
###########################################
# 步骤8:正确用户名密码
###########################################
driver.find_element_by_id("input_username").clear()
driver.find_element_by_id("input_username").send_keys("admin")
driver.find_element_by_id("input_password").clear()
driver.find_element_by_id("input_password").send_keys("admin123")
driver.find_element_by_id("login_btn").click()
# 退出
time.sleep(5)
driver.find_element_by_css_selector("span.user-info").click()
time.sleep(2)
driver.find_element_by_link_text(u"退出").click()
driver.quit()

def tearDown(self):
self.driver.quit()

if __name__ == "__main__":
unittest.main()
Loading