diff --git a/vatus/__pycache__/settings.cpython-34.pyc b/vatus/__pycache__/settings.cpython-34.pyc new file mode 100644 index 0000000..c78d036 Binary files /dev/null and b/vatus/__pycache__/settings.cpython-34.pyc differ diff --git a/vatus/bussiness_running.py b/vatus/bussiness_running.py new file mode 100644 index 0000000..d655744 --- /dev/null +++ b/vatus/bussiness_running.py @@ -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) + diff --git a/vatus/education_running.py b/vatus/education_running.py new file mode 100644 index 0000000..af08502 --- /dev/null +++ b/vatus/education_running.py @@ -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) \ No newline at end of file diff --git a/vatus/requirements.txt b/vatus/requirements.txt new file mode 100644 index 0000000..1ccafed --- /dev/null +++ b/vatus/requirements.txt @@ -0,0 +1,2 @@ +# database +selenium==3.3.0 \ No newline at end of file diff --git a/vatus/running_cases b/vatus/running_cases new file mode 100644 index 0000000..fa8d41b --- /dev/null +++ b/vatus/running_cases @@ -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 diff --git a/vatus/settings.py b/vatus/settings.py new file mode 100644 index 0000000..798b694 --- /dev/null +++ b/vatus/settings.py @@ -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': '内部网络' + } \ No newline at end of file diff --git a/vatus/testcases/test_bussiness/test_login_management/__pycache__/__init__.cpython-34.pyc b/vatus/testcases/test_bussiness/test_login_management/__pycache__/__init__.cpython-34.pyc new file mode 100644 index 0000000..0842e11 Binary files /dev/null and b/vatus/testcases/test_bussiness/test_login_management/__pycache__/__init__.cpython-34.pyc differ diff --git a/vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E70_user_login.cpython-34.pyc b/vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E70_user_login.cpython-34.pyc new file mode 100644 index 0000000..0f4af98 Binary files /dev/null and b/vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E70_user_login.cpython-34.pyc differ diff --git a/vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E71_user_modify_password_and_logout.cpython-34.pyc b/vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E71_user_modify_password_and_logout.cpython-34.pyc new file mode 100644 index 0000000..dbb6468 Binary files /dev/null and b/vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E71_user_modify_password_and_logout.cpython-34.pyc differ diff --git a/vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E72_reset_password.cpython-34.pyc b/vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E72_reset_password.cpython-34.pyc new file mode 100644 index 0000000..c976a0b Binary files /dev/null and b/vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E72_reset_password.cpython-34.pyc differ diff --git a/vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E73_modify_personal_information.cpython-34.pyc b/vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E73_modify_personal_information.cpython-34.pyc new file mode 100644 index 0000000..6fb78d7 Binary files /dev/null and b/vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E73_modify_personal_information.cpython-34.pyc differ diff --git a/vatus/testcases/test_bussiness/test_login_management/test_E70_user_login.py b/vatus/testcases/test_bussiness/test_login_management/test_E70_user_login.py new file mode 100644 index 0000000..c77d721 --- /dev/null +++ b/vatus/testcases/test_bussiness/test_login_management/test_E70_user_login.py @@ -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() diff --git a/vatus/testcases/test_bussiness/test_login_management/test_E71_user_modify_password_and_logout.py b/vatus/testcases/test_bussiness/test_login_management/test_E71_user_modify_password_and_logout.py new file mode 100644 index 0000000..b610555 --- /dev/null +++ b/vatus/testcases/test_bussiness/test_login_management/test_E71_user_modify_password_and_logout.py @@ -0,0 +1,152 @@ +# -*- coding: utf-8 -*- +import time +import unittest +from selenium import webdriver +import settings + + +class Modifypasswd(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("bussiness_base_url") + + def test_E71_user_modify_password_and_logout(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() + + ########################################### + # 前置条件:登录系统 + ########################################### + 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() + driver.find_element_by_link_text(u"个人信息").click() + ########################################### + # 步骤1:原密码错误 + ########################################### + time.sleep(2) + driver.find_element_by_id("reset-passwd").click() + time.sleep(2) + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("admin") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("admin122") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("admin122") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(11) + ########################################### + # 步骤2:输入的旧密码长度小于6个字符或者大于25个字符 + ########################################### + driver.find_element_by_id("reset-passwd").click() + time.sleep(2) + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("1234") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("admin122") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("admin122") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(1) + self.assertEqual("长度不少于5个字", driver.find_element_by_id("oldpasswd-error").text) + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("12345678901234567890123456789012345678901234567890123456789012345") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("admin122") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("admin122") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("oldpasswd-error").text) + ########################################### + # 步骤3:密码长度小于5个字符和超过64个字符 + ########################################### + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("admin123") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("1234") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("1234") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(1) + self.assertEqual("长度不少于5个字", driver.find_element_by_id("newpasswd-error").text) + self.assertEqual("长度不少于5个字", driver.find_element_by_id("confirmpasswd-error").text) + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("12345678901234567890123456789012345678901234567890123456789012345") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("12345678901234567890123456789012345678901234567890123456789012345") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("newpasswd-error").text) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("confirmpasswd-error").text) + ########################################### + # 步骤4:新密码不一致 + ########################################### + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("admin123") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("1234567890") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("1234567") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(1) + self.assertEqual("确认密码不一致", driver.find_element_by_id("confirmpasswd-error").text) + ########################################### + # 步骤5:输入正确新旧密码,重新登录 + ########################################### + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("admin123") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("123456") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("123456") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(1) + # 退出 + time.sleep(8) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(3) + 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("123456") + driver.find_element_by_id("login_btn").click() + ########################################### + # 后置条件: 恢复密码,有助多次测试 + ########################################### + time.sleep(5) + driver.find_element_by_css_selector("span.user-info").click() + driver.find_element_by_link_text(u"个人信息").click() + time.sleep(2) + driver.find_element_by_id("reset-passwd").click() + time.sleep(2) + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("123456") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("admin123") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("admin123") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(2) + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_bussiness/test_login_management/test_E72_reset_password.py b/vatus/testcases/test_bussiness/test_login_management/test_E72_reset_password.py new file mode 100644 index 0000000..df92002 --- /dev/null +++ b/vatus/testcases/test_bussiness/test_login_management/test_E72_reset_password.py @@ -0,0 +1,130 @@ +# -*- coding: utf-8 -*- +import time +import unittest +from selenium import webdriver +import settings + + +class ResetPassword(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("bussiness_base_url") + + def test_E72_reset_password(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_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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"员工").click() + time.sleep(3) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("wuhaibin") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("wuhaibin") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("wuhaibin@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(9) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(2) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + ########################################### + # 步骤1:跳转页面,检查邮箱输入格式、长度 + ########################################### + driver.find_element_by_id("reset_password").click() + time.sleep(2) + driver.find_element_by_id("username_email").clear() + driver.find_element_by_id("submit").click() + time.sleep(1) + email_text = driver.find_element_by_id("username_email-error").text + self.assertEqual("邮箱不能为空", email_text) + driver.find_element_by_id("username_email").clear() + driver.find_element_by_id("username_email").\ + send_keys("123456789012345678901234567890123456789012345678901234567890@dsfd.com") + driver.find_element_by_id("submit").click() + time.sleep(1) + email_text = driver.find_element_by_id("username_email-error").text + self.assertEqual("请输入长度在 1 到 64 之间的字符串", email_text) + driver.find_element_by_id("username_email").clear() + driver.find_element_by_id("username_email").send_keys("test@@dfd.com") + driver.find_element_by_id("submit").click() + time.sleep(1) + email_text = driver.find_element_by_id("username_email-error").text + self.assertEqual("请输入有效的电子邮件地址", email_text) + ########################################### + # 步骤2:输入未在系统注册的合法邮箱地址 + ########################################### + driver.find_element_by_id("username_email").clear() + driver.find_element_by_id("username_email").send_keys("test@dfd.com") + driver.find_element_by_id("submit").click() + time.sleep(3) + email_text = driver.find_element_by_id("reset_state").text + self.assertEqual("未注册的用户邮箱地址", email_text) + ########################################### + # 步骤3:输入步骤1创建的测试邮件地址 + ########################################### + driver.find_element_by_id("username_email").clear() + driver.find_element_by_id("username_email").send_keys("wuhaibin@vinzor.com") + driver.find_element_by_id("submit").click() + time.sleep(5) + login_text = driver.find_element_by_id("login_state").text + self.assertEqual("邮件已发送,请查收并重设密码", login_text) + ########################################### + # 后续步骤: 清理创建的测试数据 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"员工").click() + time.sleep(3) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("wuhaibin") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_user").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(2) + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_bussiness/test_login_management/test_E73_modify_personal_information.py b/vatus/testcases/test_bussiness/test_login_management/test_E73_modify_personal_information.py new file mode 100644 index 0000000..750bba5 --- /dev/null +++ b/vatus/testcases/test_bussiness/test_login_management/test_E73_modify_personal_information.py @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- +import time +import unittest +from selenium import webdriver +import settings + + +class ModifyPersonalInfo(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("bussiness_base_url") + + def test_E73_modify_personal_information(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() + ########################################### + # 前置条件:登录系统 + ########################################### + 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(3) + ########################################### + # 步骤1:邮箱地址为空 + ########################################### + driver.find_element_by_css_selector("span.user-info").click() + driver.find_element_by_link_text(u"个人信息").click() + time.sleep(3) + driver.find_element_by_id("email").click() + driver.find_element_by_css_selector("span.editable-clear-x").click() + driver.find_element_by_xpath("//button[@type='submit']").click() + self.assertEqual("请输入邮箱地址!", driver.find_element_by_class_name("editable-error-block").text) + time.sleep(2) + ########################################### + # 步骤2:邮箱地址长度和格式不对 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").\ + send_keys("123456789012345678901234567890123456789012345678901234567890@1234567890.com") + driver.find_element_by_xpath("//button[@type='submit']").click() + self.assertEqual("长度不超过64个字", driver.find_element_by_class_name("editable-error-block").text) + time.sleep(2) + driver.find_element_by_css_selector("span.editable-clear-x").click() + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("fss@#$%.com") + driver.find_element_by_xpath("//button[@type='submit']").click() + self.assertEqual("邮件格式不正确", driver.find_element_by_class_name("editable-error-block").text) + time.sleep(2) + ########################################### + # 步骤3:输入已被其他 用户注册使用的邮箱 + ########################################### + driver.find_element_by_css_selector("span.editable-clear-x").click() + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("staff@example.com") + driver.find_element_by_xpath("//button[@type='submit']").click() + time.sleep(2) + self.assertEqual("邮件地址已被使用", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + time.sleep(8) + ########################################### + # 步骤4:输入合法邮箱地址 + ########################################### + driver.find_element_by_id("email").click() + driver.find_element_by_css_selector("span.editable-clear-x").click() + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("helloworld@java.com") + driver.find_element_by_xpath("//button[@type='submit']").click() + time.sleep(2) + self.assertEqual("用户 admin 信息修改成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + time.sleep(8) + ########################################### + # 后置条件: 恢复初始邮箱地址,有助多次测试 + ########################################### + driver.find_element_by_id("email").click() + driver.find_element_by_css_selector("span.editable-clear-x").click() + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("admin@example.com") + driver.find_element_by_xpath("//button[@type='submit']").click() + time.sleep(2) + driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_bussiness/test_user_management/__pycache__/__init__.cpython-34.pyc b/vatus/testcases/test_bussiness/test_user_management/__pycache__/__init__.cpython-34.pyc new file mode 100644 index 0000000..23b428a Binary files /dev/null and b/vatus/testcases/test_bussiness/test_user_management/__pycache__/__init__.cpython-34.pyc differ diff --git a/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E112_create_administrator.cpython-34.pyc b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E112_create_administrator.cpython-34.pyc new file mode 100644 index 0000000..2399eee Binary files /dev/null and b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E112_create_administrator.cpython-34.pyc differ diff --git a/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E139_delete_administrator.cpython-34.pyc b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E139_delete_administrator.cpython-34.pyc new file mode 100644 index 0000000..04e1e5a Binary files /dev/null and b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E139_delete_administrator.cpython-34.pyc differ diff --git a/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E142_disable_enable_administrator.cpython-34.pyc b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E142_disable_enable_administrator.cpython-34.pyc new file mode 100644 index 0000000..0efe33e Binary files /dev/null and b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E142_disable_enable_administrator.cpython-34.pyc differ diff --git a/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E79_create_staff.cpython-34.pyc b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E79_create_staff.cpython-34.pyc new file mode 100644 index 0000000..f0d44b3 Binary files /dev/null and b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E79_create_staff.cpython-34.pyc differ diff --git a/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E81_delete_staff.cpython-34.pyc b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E81_delete_staff.cpython-34.pyc new file mode 100644 index 0000000..0cd5f39 Binary files /dev/null and b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E81_delete_staff.cpython-34.pyc differ diff --git a/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E82_reset_staff_password.cpython-34.pyc b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E82_reset_staff_password.cpython-34.pyc new file mode 100644 index 0000000..41c283b Binary files /dev/null and b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E82_reset_staff_password.cpython-34.pyc differ diff --git a/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E83_modify_the_staff_information.cpython-34.pyc b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E83_modify_the_staff_information.cpython-34.pyc new file mode 100644 index 0000000..532824b Binary files /dev/null and b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E83_modify_the_staff_information.cpython-34.pyc differ diff --git a/vatus/testcases/test_bussiness/test_user_management/test_E112_create_administrator.py b/vatus/testcases/test_bussiness/test_user_management/test_E112_create_administrator.py new file mode 100644 index 0000000..5e150e3 --- /dev/null +++ b/vatus/testcases/test_bussiness/test_user_management/test_E112_create_administrator.py @@ -0,0 +1,202 @@ +# -*- coding: utf-8 -*- +import time +import unittest +from selenium import webdriver +import settings + + +class CreateAdministrator(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("bussiness_base_url") + + def test_E112_create_administrator(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() + ########################################### + # 前置条件:登录系统 + ########################################### + 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) + ########################################### + # 步骤1:全部输入为空,检查提示 + ########################################### + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"管理员").click() + time.sleep(3) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("请输入用户名", driver.find_element_by_id("username-error").text) + self.assertEqual("请输入姓名", driver.find_element_by_id("fullname-error").text) + self.assertEqual("请输入邮件地址", driver.find_element_by_id("email-error").text) + self.assertEqual("请输入用户密码", driver.find_element_by_id("password-error").text) + self.assertEqual("请输入用户密码", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤3:长度输入不符合,密码不一致,检查提示 + ########################################### + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("username-error").text) + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("fullname-error").text) + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").\ + send_keys("123456789012345678901234567890123456789012345678901234567890@dsfd.com") + time.sleep(1) + self.assertEqual("长度1-64个字", driver.find_element_by_id("email-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("1234") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("1234") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("12345") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + self.assertEqual("确认密码不一致", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤4:正常输入 + ########################################### + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("createadmin") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("createadmin") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("createadmin@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + self.assertEqual("用户 createadmin 创建成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + ########################################### + # 步骤5:正常输入但ID已存在,检查提示信息 + ########################################### + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("createadmin") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("createadmin") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("admin02@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("用户名已经存在", driver.find_element_by_id("username-error").text) + ########################################### + # 步骤5:正常输入但邮箱已存在,检查提示信息 + ########################################### + driver.find_element_by_class_name("close").click() + time.sleep(1) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("admin02") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("admin02") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("createadmin@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("邮件地址已被使用", driver.find_element_by_id("email-error").text) + time.sleep(1) + driver.find_element_by_class_name("close").click() + time.sleep(1) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("createadmin") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("123456") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + ########################################### + # 后置条件: 清理创建用户,有助多次测试 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"管理员").click() + time.sleep(3) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("createadmin") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/thead/tr/th[1]/label/input").click() + elif web_type == 'chrome': + element = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/thead/tr/th[1]/label/input") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_users").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + driver.quit() + + def tearDown(self): + self.driver.quit() + + +if __name__ == "__main__": + unittest.main() \ No newline at end of file diff --git a/vatus/testcases/test_bussiness/test_user_management/test_E139_delete_administrator.py b/vatus/testcases/test_bussiness/test_user_management/test_E139_delete_administrator.py new file mode 100644 index 0000000..0fd2a1b --- /dev/null +++ b/vatus/testcases/test_bussiness/test_user_management/test_E139_delete_administrator.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- +import time +import unittest +from selenium import webdriver +import settings + + +class DeleteAdministrator(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("bussiness_base_url") + + def test_E139_delete_administrator(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() + ########################################### + # 前置条件:登录系统,创建测试数据 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"管理员").click() + time.sleep(3) + teacher_names = ['deleteadmin01','deleteadmin02','deleteadmin03','deleteadm04'] + for teacher_name in teacher_names: + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys(teacher_name) + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys(teacher_name) + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys(teacher_name+"@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + ########################################### + # 步骤1:未勾选任何一条学生记录,点击“删除”按钮 + ########################################### + time.sleep(5) + driver.find_element_by_id("delete_users").click() + time.sleep(1) + self.assertEqual("请选择一个或多个要删除的用户", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + time.sleep(8) + ########################################### + # 步骤2:多选删除 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("deleteadmin") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/thead/tr/th[1]/label/input").click() + elif web_type == 'chrome': + element = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/thead/tr/th[1]/label/input") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_users").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + ########################################### + # 步骤3:弹出删除框,但是取消 & 单选删除 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("deleteadm") + time.sleep(5) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/tbody/tr/td[6]/div/a[2]").click() + time.sleep(5) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[4]/div[2]/div/div[3]/button[2]").click() + time.sleep(3) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("deleteadm") + time.sleep(5) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/tbody/tr/td[6]/div/a[2]").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_bussiness/test_user_management/test_E142_disable_enable_administrator.py b/vatus/testcases/test_bussiness/test_user_management/test_E142_disable_enable_administrator.py new file mode 100644 index 0000000..f6aee58 --- /dev/null +++ b/vatus/testcases/test_bussiness/test_user_management/test_E142_disable_enable_administrator.py @@ -0,0 +1,167 @@ +# -*- coding: utf-8 -*- +import time +import unittest +from selenium import webdriver +import settings + + +class DisableEnableAdministrator(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("bussiness_base_url") + + # chrome 浏览器存在兼容问题 + def test_E142_disable_enable_administrator(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() + ########################################### + # 前置条件:登录系统,创建测试数据 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"管理员").click() + time.sleep(3) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("admin01") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("admin01") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("admin01@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + self.assertEqual("用户 admin01 创建成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + ########################################### + # 步骤1:禁用新建用户,新建用户无法登录 + ########################################### + time.sleep(8) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("admin01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("status_btn").click() + elif web_type == 'chrome': + continue + #element = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/div[2]/div[2]/div/table/tbody/tr/td[5]/span/label/input") + #webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(11) + + if web_type == 'firefox': + driver.find_element_by_id("status_btn").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("status_btn") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(11) + + if web_type == 'firefox': + driver.find_element_by_id("status_btn").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("status_btn") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(11) + + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin01") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("123456") + driver.find_element_by_id("login_btn").click() + time.sleep(12) + login_text = driver.find_element_by_id("login_state").text + self.assertEqual("用户处于禁用状态禁止登录", login_text) + ########################################### + # 步骤2:激活新建用户,新建用户可以登录 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"管理员").click() + time.sleep(3) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("admin01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("status_btn").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("status_btn") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(11) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin01") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("123456") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + ########################################### + # 后置条件: 清理创建用户,有助多次测试 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"管理员").click() + time.sleep(3) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("admin01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/thead/tr/th[1]/label/input").click() + elif web_type == 'chrome': + element = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/thead/tr/th[1]/label/input") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_users").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() \ No newline at end of file diff --git a/vatus/testcases/test_bussiness/test_user_management/test_E79_create_staff.py b/vatus/testcases/test_bussiness/test_user_management/test_E79_create_staff.py new file mode 100644 index 0000000..d9ca4bb --- /dev/null +++ b/vatus/testcases/test_bussiness/test_user_management/test_E79_create_staff.py @@ -0,0 +1,197 @@ +# -*- coding: utf-8 -*- +import time +import unittest +from selenium import webdriver +import settings + + +class CreateStaff(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("bussiness_base_url") + + def test_E79_create_staff(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() + ########################################### + # 前置条件:登录系统 + ########################################### + 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) + ########################################### + # 步骤1:全部输入为空,检查提示 + ########################################### + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"员工").click() + time.sleep(3) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("请输入用户名", driver.find_element_by_id("username-error").text) + self.assertEqual("请输入姓名", driver.find_element_by_id("fullname-error").text) + self.assertEqual("请输入邮件地址", driver.find_element_by_id("email-error").text) + self.assertEqual("请输入用户密码", driver.find_element_by_id("password-error").text) + self.assertEqual("请输入用户密码", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤3:长度输入不符合,密码不一致,检查提示 + ########################################### + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("username-error").text) + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("fullname-error").text) + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").\ + send_keys("123456789012345678901234567890123456789012345678901234567890@dsfd.com") + time.sleep(1) + self.assertEqual("长度1-64个字", driver.find_element_by_id("email-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("1234") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("1234") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("12345") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + self.assertEqual("确认密码不一致", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤4:正常输入 + ########################################### + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("student01") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("student01") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("student01@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + self.assertEqual("用户 student01 创建成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + ########################################### + # 步骤5:正常输入但ID已存在,检查提示信息 + ########################################### + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("student01") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("student01") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("student02@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("用户名已经存在", driver.find_element_by_id("username-error").text) + ########################################### + # 步骤5:正常输入但邮箱已存在,检查提示信息 + ########################################### + driver.find_element_by_class_name("close").click() + time.sleep(1) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("student02") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("student02") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("student01@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("邮件地址已被使用", driver.find_element_by_id("email-error").text) + time.sleep(1) + driver.find_element_by_class_name("close").click() + time.sleep(1) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("student01") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("123456") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + ########################################### + # 后置条件: 清理创建用户,有助多次测试 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"员工").click() + time.sleep(1) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("student01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_user").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + driver.quit() + + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_bussiness/test_user_management/test_E81_delete_staff.py b/vatus/testcases/test_bussiness/test_user_management/test_E81_delete_staff.py new file mode 100644 index 0000000..5d98d19 --- /dev/null +++ b/vatus/testcases/test_bussiness/test_user_management/test_E81_delete_staff.py @@ -0,0 +1,107 @@ +# -*- coding: utf-8 -*- +import time +import unittest +from selenium import webdriver +import settings + + +class DeleteStaff(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("bussiness_base_url") + + def test_E81_delete_staff(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() + ########################################### + # 前置条件:登录系统,创建测试数据 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"员工").click() + time.sleep(3) + student_names = ['deletestaff01','deletestaff02','deletestaff03','deletestaf04'] + for staff_name in student_names: + driver.find_element_by_id("create_user").click() + time.sleep(2) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys(staff_name) + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys(staff_name) + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys(staff_name+"@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + ########################################### + # 步骤1:未勾选任何一条学生记录,点击“删除”按钮 + ########################################### + time.sleep(5) + driver.find_element_by_id("delete_user").click() + time.sleep(1) + self.assertEqual("请选择一个或多个要删除的用户", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + time.sleep(8) + ########################################### + # 步骤2:多选删除 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("deletestaff") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_user").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + ########################################### + # 步骤3:单选删除 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("deletestaf") + time.sleep(5) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/tbody/tr/td[5]/div/a[2]").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + ########################################### + # 步骤4:弹出删除框,但是取消 + ########################################### + driver.find_element_by_link_text(u"员工").click() + time.sleep(1) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/tbody/tr/td[5]/div/a[2]").click() + time.sleep(5) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/div[2]/div[2]/div/" + "table/tbody/tr/td[5]/div/a[2]").click() + time.sleep(3) + + driver.quit() + + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_bussiness/test_user_management/test_E82_reset_staff_password.py b/vatus/testcases/test_bussiness/test_user_management/test_E82_reset_staff_password.py new file mode 100644 index 0000000..282968d --- /dev/null +++ b/vatus/testcases/test_bussiness/test_user_management/test_E82_reset_staff_password.py @@ -0,0 +1,147 @@ +# -*- coding: utf-8 -*- +import time +import unittest +from selenium import webdriver +import settings + + +class ResetStaffPassword(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("bussiness_base_url") + + def test_E82_reset_staff_password(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() + ########################################### + # 前置条件:登录系统 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"员工").click() + time.sleep(3) + ########################################### + # 步骤1:不选任何员工,点击重置,检查提示 + ########################################### + driver.find_element_by_id("modify_password").click() + time.sleep(2) + self.assertEqual("请选择一个或多个要重置密码的用户", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + time.sleep(8) + ########################################### + # 步骤2:重置密码输入为空 + ########################################### + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("modify_password").click() + time.sleep(2) + driver.find_element_by_id("confirm_action").click() + self.assertEqual("请输入用户密码", driver.find_element_by_id("password-error").text) + self.assertEqual("请输入用户密码", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤3:重置密码输入长度不符合要求 + ########################################### + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("1234") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("1234") + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("1234567890123456789012345678901" + "234567890123456789012345678901234567890") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456789012345678901234567890123" + "4567890123456789012345678901234567890") + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤4:重置密码两次输入不一致 + ########################################### + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("87654321") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("987654321") + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("确认密码不一致", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤4:重置密码成功验证登录 + ########################################### + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("987654321") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("987654321") + driver.find_element_by_id("confirm_action").click() + time.sleep(8) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("staff") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("987654321") + driver.find_element_by_id("login_btn").click() + time.sleep(3) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + ########################################### + # 后置条件: 恢复重置为初始密码 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"员工").click() + time.sleep(3) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("modify_password").click() + time.sleep(2) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("admin123") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("admin123") + driver.find_element_by_id("confirm_action").click() + time.sleep(3) + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_bussiness/test_user_management/test_E83_modify_the_staff_information.py b/vatus/testcases/test_bussiness/test_user_management/test_E83_modify_the_staff_information.py new file mode 100644 index 0000000..6b6c08b --- /dev/null +++ b/vatus/testcases/test_bussiness/test_user_management/test_E83_modify_the_staff_information.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +import time +import unittest +from selenium import webdriver +import settings + + +class ModifyStaffInfo(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("bussiness_base_url") + + def test_E83_modify_staff_info(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() + ########################################### + # 前置条件:登录系统,创建测试数据 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"员工").click() + time.sleep(3) + driver.find_element_by_id("create_user").click() + time.sleep(2) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("staff01") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("staff01") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("staff01@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + ########################################### + # 步骤1:姓名、邮件输入留空,检查提示 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("staff01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/tbody/tr/td[5]/div/a[1]").click() + elif web_type == 'chrome': + element = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/tbody/tr/td[5]/div/a[1]") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + self.assertEqual('true', driver.find_element_by_id("username").get_attribute("readonly")) + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("email").clear() + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("请输入姓名", driver.find_element_by_id("fullname-error").text) + self.assertEqual("请输入邮件地址", driver.find_element_by_id("email-error").text) + ########################################### + # 步骤2:姓名、邮件输入过长,检查提示 + ########################################### + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").\ + send_keys("12345678901234567890123456789012345678901234567890@12345678901234567.com") + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("fullname-error").text) + self.assertEqual("长度1-64个字", driver.find_element_by_id("email-error").text) + ########################################### + # 步骤3:邮箱编辑输入格式不正确,检查提示 + ########################################### + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("test@@dfd.com") + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("请输入有效的电子邮件地址", driver.find_element_by_id("email-error").text) + ########################################### + # 步骤4:邮箱已被其他用户使用,检查提示 + ########################################### + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("vinzor") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("staff@example.com") + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("邮件地址已被使用", driver.find_element_by_id("email-error").text) + ########################################### + # 步骤5:正常合理输入,成功编辑 + ########################################### + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("test11@vinzor.com") + driver.find_element_by_id("confirm_action").click() + time.sleep(3) + self.assertEqual("用户 staff01 信息修改成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + ########################################### + # 后置条件: 清理创建用户,有助多次测试 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("staff01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_user").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_education/test_login_management/__pycache__/__init__.cpython-34.pyc b/vatus/testcases/test_education/test_login_management/__pycache__/__init__.cpython-34.pyc new file mode 100644 index 0000000..14b9b3f Binary files /dev/null and b/vatus/testcases/test_education/test_login_management/__pycache__/__init__.cpython-34.pyc differ diff --git a/vatus/testcases/test_education/test_login_management/__pycache__/test_E70_user_login.cpython-34.pyc b/vatus/testcases/test_education/test_login_management/__pycache__/test_E70_user_login.cpython-34.pyc new file mode 100644 index 0000000..99575b2 Binary files /dev/null and b/vatus/testcases/test_education/test_login_management/__pycache__/test_E70_user_login.cpython-34.pyc differ diff --git a/vatus/testcases/test_education/test_login_management/__pycache__/test_E71_user_modify_password_and_logout.cpython-34.pyc b/vatus/testcases/test_education/test_login_management/__pycache__/test_E71_user_modify_password_and_logout.cpython-34.pyc new file mode 100644 index 0000000..7522bca Binary files /dev/null and b/vatus/testcases/test_education/test_login_management/__pycache__/test_E71_user_modify_password_and_logout.cpython-34.pyc differ diff --git a/vatus/testcases/test_education/test_login_management/__pycache__/test_E72_reset_password.cpython-34.pyc b/vatus/testcases/test_education/test_login_management/__pycache__/test_E72_reset_password.cpython-34.pyc new file mode 100644 index 0000000..0d520f0 Binary files /dev/null and b/vatus/testcases/test_education/test_login_management/__pycache__/test_E72_reset_password.cpython-34.pyc differ diff --git a/vatus/testcases/test_education/test_login_management/__pycache__/test_E73_modify_personal_information.cpython-34.pyc b/vatus/testcases/test_education/test_login_management/__pycache__/test_E73_modify_personal_information.cpython-34.pyc new file mode 100644 index 0000000..b4d54b2 Binary files /dev/null and b/vatus/testcases/test_education/test_login_management/__pycache__/test_E73_modify_personal_information.cpython-34.pyc differ diff --git a/vatus/testcases/test_education/test_login_management/test_E70_user_login.py b/vatus/testcases/test_education/test_login_management/test_E70_user_login.py new file mode 100644 index 0000000..87a9946 --- /dev/null +++ b/vatus/testcases/test_education/test_login_management/test_E70_user_login.py @@ -0,0 +1,134 @@ +# -*- 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("education_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(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + 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() diff --git a/vatus/testcases/test_education/test_login_management/test_E71_user_modify_password_and_logout.py b/vatus/testcases/test_education/test_login_management/test_E71_user_modify_password_and_logout.py new file mode 100644 index 0000000..04b34de --- /dev/null +++ b/vatus/testcases/test_education/test_login_management/test_E71_user_modify_password_and_logout.py @@ -0,0 +1,154 @@ +# -*- coding: utf-8 -*- +import time +import unittest + +from selenium import webdriver + +import settings + + +class Modifypasswd(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("education_base_url") + + def test_E71_user_modify_password_and_logout(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() + + ########################################### + # 前置条件:登录系统 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_css_selector("span.user-info").click() + driver.find_element_by_link_text(u"个人信息").click() + ########################################### + # 步骤1:原密码错误 + ########################################### + time.sleep(2) + driver.find_element_by_id("reset-passwd").click() + time.sleep(2) + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("admin") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("admin122") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("admin122") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(11) + ########################################### + # 步骤2:输入的旧密码长度小于6个字符或者大于25个字符 + ########################################### + driver.find_element_by_id("reset-passwd").click() + time.sleep(2) + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("1234") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("admin122") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("admin122") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(1) + self.assertEqual("长度不少于5个字", driver.find_element_by_id("oldpasswd-error").text) + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("12345678901234567890123456789012345678901234567890123456789012345") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("admin122") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("admin122") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("oldpasswd-error").text) + ########################################### + # 步骤3:密码长度小于5个字符和超过64个字符 + ########################################### + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("admin123") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("1234") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("1234") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(1) + self.assertEqual("长度不少于5个字", driver.find_element_by_id("newpasswd-error").text) + self.assertEqual("长度不少于5个字", driver.find_element_by_id("confirmpasswd-error").text) + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("12345678901234567890123456789012345678901234567890123456789012345") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("12345678901234567890123456789012345678901234567890123456789012345") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("newpasswd-error").text) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("confirmpasswd-error").text) + ########################################### + # 步骤4:新密码不一致 + ########################################### + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("admin123") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("1234567890") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("1234567") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(1) + self.assertEqual("确认密码不一致", driver.find_element_by_id("confirmpasswd-error").text) + ########################################### + # 步骤5:输入正确新旧密码,重新登录 + ########################################### + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("admin123") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("123456") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("123456") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(1) + # 退出 + time.sleep(8) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(3) + 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("123456") + driver.find_element_by_id("login_btn").click() + ########################################### + # 后置条件: 恢复密码,有助多次测试 + ########################################### + time.sleep(5) + driver.find_element_by_css_selector("span.user-info").click() + driver.find_element_by_link_text(u"个人信息").click() + time.sleep(2) + driver.find_element_by_id("reset-passwd").click() + time.sleep(2) + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("123456") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(2) + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_education/test_login_management/test_E72_reset_password.py b/vatus/testcases/test_education/test_login_management/test_E72_reset_password.py new file mode 100644 index 0000000..a0f52ec --- /dev/null +++ b/vatus/testcases/test_education/test_login_management/test_E72_reset_password.py @@ -0,0 +1,132 @@ +# -*- coding: utf-8 -*- +import time +import unittest + +from selenium import webdriver + +import settings + + +class ResetPassword(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("education_base_url") + + def test_E72_reset_password(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_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"学生").click() + time.sleep(3) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("wuhaibin") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("wuhaibin") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("wuhaibin@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(9) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(2) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + ########################################### + # 步骤1:跳转页面,检查邮箱输入格式、长度 + ########################################### + driver.find_element_by_id("reset_password").click() + time.sleep(2) + driver.find_element_by_id("username_email").clear() + driver.find_element_by_id("submit").click() + time.sleep(1) + email_text = driver.find_element_by_id("username_email-error").text + self.assertEqual("邮箱不能为空", email_text) + driver.find_element_by_id("username_email").clear() + driver.find_element_by_id("username_email").\ + send_keys("123456789012345678901234567890123456789012345678901234567890@dsfd.com") + driver.find_element_by_id("submit").click() + time.sleep(1) + email_text = driver.find_element_by_id("username_email-error").text + self.assertEqual("请输入长度在 1 到 64 之间的字符串", email_text) + driver.find_element_by_id("username_email").clear() + driver.find_element_by_id("username_email").send_keys("test@@dfd.com") + driver.find_element_by_id("submit").click() + time.sleep(1) + email_text = driver.find_element_by_id("username_email-error").text + self.assertEqual("请输入有效的电子邮件地址", email_text) + ########################################### + # 步骤2:输入未在系统注册的合法邮箱地址 + ########################################### + driver.find_element_by_id("username_email").clear() + driver.find_element_by_id("username_email").send_keys("test@dfd.com") + driver.find_element_by_id("submit").click() + time.sleep(3) + email_text = driver.find_element_by_id("reset_state").text + self.assertEqual("未注册的用户邮箱地址", email_text) + ########################################### + # 步骤3:输入步骤1创建的测试邮件地址 + ########################################### + driver.find_element_by_id("username_email").clear() + driver.find_element_by_id("username_email").send_keys("wuhaibin@vinzor.com") + driver.find_element_by_id("submit").click() + time.sleep(5) + login_text = driver.find_element_by_id("login_state").text + self.assertEqual("邮件已发送,请查收并重设密码", login_text) + ########################################### + # 后续步骤: 清理创建的测试数据 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"学生").click() + time.sleep(3) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("wuhaibin") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_user").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(2) + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_education/test_login_management/test_E73_modify_personal_information.py b/vatus/testcases/test_education/test_login_management/test_E73_modify_personal_information.py new file mode 100644 index 0000000..77b293c --- /dev/null +++ b/vatus/testcases/test_education/test_login_management/test_E73_modify_personal_information.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +import time +import unittest + +from selenium import webdriver + +import settings + + +class ModifyPersonalInfo(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("education_base_url") + + def test_E73_modify_personal_information(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() + ########################################### + # 前置条件:登录系统 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(3) + ########################################### + # 步骤1:邮箱地址为空 + ########################################### + driver.find_element_by_css_selector("span.user-info").click() + driver.find_element_by_link_text(u"个人信息").click() + time.sleep(3) + driver.find_element_by_id("email").click() + driver.find_element_by_css_selector("span.editable-clear-x").click() + driver.find_element_by_xpath("//button[@type='submit']").click() + self.assertEqual("请输入邮箱地址!", driver.find_element_by_class_name("editable-error-block").text) + time.sleep(2) + ########################################### + # 步骤2:邮箱地址长度和格式不对 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").\ + send_keys("123456789012345678901234567890123456789012345678901234567890@1234567890.com") + driver.find_element_by_xpath("//button[@type='submit']").click() + self.assertEqual("长度不超过64个字", driver.find_element_by_class_name("editable-error-block").text) + time.sleep(2) + driver.find_element_by_css_selector("span.editable-clear-x").click() + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("fss@#$%.com") + driver.find_element_by_xpath("//button[@type='submit']").click() + self.assertEqual("邮件格式不正确", driver.find_element_by_class_name("editable-error-block").text) + time.sleep(2) + ########################################### + # 步骤3:输入已被其他 用户注册使用的邮箱 + ########################################### + driver.find_element_by_css_selector("span.editable-clear-x").click() + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("student@example.com") + driver.find_element_by_xpath("//button[@type='submit']").click() + time.sleep(2) + self.assertEqual("邮件地址已被使用", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + time.sleep(8) + ########################################### + # 步骤4:输入合法邮箱地址 + ########################################### + driver.find_element_by_id("email").click() + driver.find_element_by_css_selector("span.editable-clear-x").click() + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("helloworld@java.com") + driver.find_element_by_xpath("//button[@type='submit']").click() + time.sleep(2) + self.assertEqual("用户 admin 信息修改成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + time.sleep(8) + ########################################### + # 后置条件: 恢复初始邮箱地址,有助多次测试 + ########################################### + driver.find_element_by_id("email").click() + driver.find_element_by_css_selector("span.editable-clear-x").click() + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("admin@example.com") + driver.find_element_by_xpath("//button[@type='submit']").click() + time.sleep(2) + driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/__init__.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/__init__.cpython-34.pyc new file mode 100644 index 0000000..2e6d2d7 Binary files /dev/null and b/vatus/testcases/test_education/test_user_management/__pycache__/__init__.cpython-34.pyc differ diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/test_E112_create_administrator.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/test_E112_create_administrator.cpython-34.pyc new file mode 100644 index 0000000..0c01037 Binary files /dev/null and b/vatus/testcases/test_education/test_user_management/__pycache__/test_E112_create_administrator.cpython-34.pyc differ diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/test_E139_delete_administrator.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/test_E139_delete_administrator.cpython-34.pyc new file mode 100644 index 0000000..a21752e Binary files /dev/null and b/vatus/testcases/test_education/test_user_management/__pycache__/test_E139_delete_administrator.cpython-34.pyc differ diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/test_E142_disable_enable_administrator.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/test_E142_disable_enable_administrator.cpython-34.pyc new file mode 100644 index 0000000..6efb911 Binary files /dev/null and b/vatus/testcases/test_education/test_user_management/__pycache__/test_E142_disable_enable_administrator.cpython-34.pyc differ diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/test_E79_create_student.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/test_E79_create_student.cpython-34.pyc new file mode 100644 index 0000000..ba096e1 Binary files /dev/null and b/vatus/testcases/test_education/test_user_management/__pycache__/test_E79_create_student.cpython-34.pyc differ diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/test_E81_delete_student.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/test_E81_delete_student.cpython-34.pyc new file mode 100644 index 0000000..5d8d531 Binary files /dev/null and b/vatus/testcases/test_education/test_user_management/__pycache__/test_E81_delete_student.cpython-34.pyc differ diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/test_E82_reset_student_password.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/test_E82_reset_student_password.cpython-34.pyc new file mode 100644 index 0000000..686dceb Binary files /dev/null and b/vatus/testcases/test_education/test_user_management/__pycache__/test_E82_reset_student_password.cpython-34.pyc differ diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/test_E83_modify_the_students_information.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/test_E83_modify_the_students_information.cpython-34.pyc new file mode 100644 index 0000000..3428d97 Binary files /dev/null and b/vatus/testcases/test_education/test_user_management/__pycache__/test_E83_modify_the_students_information.cpython-34.pyc differ diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/test_E85_create_teacher.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/test_E85_create_teacher.cpython-34.pyc new file mode 100644 index 0000000..64be4e4 Binary files /dev/null and b/vatus/testcases/test_education/test_user_management/__pycache__/test_E85_create_teacher.cpython-34.pyc differ diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/test_E87_delete_teacher.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/test_E87_delete_teacher.cpython-34.pyc new file mode 100644 index 0000000..e9b604c Binary files /dev/null and b/vatus/testcases/test_education/test_user_management/__pycache__/test_E87_delete_teacher.cpython-34.pyc differ diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/test_E88_modify_the_teachers_information.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/test_E88_modify_the_teachers_information.cpython-34.pyc new file mode 100644 index 0000000..9c28b8d Binary files /dev/null and b/vatus/testcases/test_education/test_user_management/__pycache__/test_E88_modify_the_teachers_information.cpython-34.pyc differ diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/test_E89_disable_enable_teacher.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/test_E89_disable_enable_teacher.cpython-34.pyc new file mode 100644 index 0000000..f3e44af Binary files /dev/null and b/vatus/testcases/test_education/test_user_management/__pycache__/test_E89_disable_enable_teacher.cpython-34.pyc differ diff --git a/vatus/testcases/test_education/test_user_management/test_E112_create_administrator.py b/vatus/testcases/test_education/test_user_management/test_E112_create_administrator.py new file mode 100644 index 0000000..2a0b5b3 --- /dev/null +++ b/vatus/testcases/test_education/test_user_management/test_E112_create_administrator.py @@ -0,0 +1,204 @@ +# -*- coding: utf-8 -*- +import time +import unittest + +from selenium import webdriver + +import settings + + +class CreateAdministrator(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("education_base_url") + + def test_E112_create_administrator(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() + ########################################### + # 前置条件:登录系统 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(5) + ########################################### + # 步骤1:全部输入为空,检查提示 + ########################################### + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"管理员").click() + time.sleep(3) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("请输入用户名", driver.find_element_by_id("username-error").text) + self.assertEqual("请输入姓名", driver.find_element_by_id("fullname-error").text) + self.assertEqual("请输入邮件地址", driver.find_element_by_id("email-error").text) + self.assertEqual("请输入用户密码", driver.find_element_by_id("password-error").text) + self.assertEqual("请输入用户密码", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤3:长度输入不符合,密码不一致,检查提示 + ########################################### + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("username-error").text) + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("fullname-error").text) + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").\ + send_keys("123456789012345678901234567890123456789012345678901234567890@dsfd.com") + time.sleep(1) + self.assertEqual("长度1-64个字", driver.find_element_by_id("email-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("1234") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("1234") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("12345") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + self.assertEqual("确认密码不一致", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤4:正常输入 + ########################################### + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("createadmin") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("createadmin") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("createadmin@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + self.assertEqual("用户 createadmin 创建成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + ########################################### + # 步骤5:正常输入但ID已存在,检查提示信息 + ########################################### + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("createadmin") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("createadmin") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("admin02@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("用户名已经存在", driver.find_element_by_id("username-error").text) + ########################################### + # 步骤5:正常输入但邮箱已存在,检查提示信息 + ########################################### + driver.find_element_by_class_name("close").click() + time.sleep(1) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("admin02") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("admin02") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("createadmin@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("邮件地址已被使用", driver.find_element_by_id("email-error").text) + time.sleep(1) + driver.find_element_by_class_name("close").click() + time.sleep(1) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("createadmin") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("123456") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + ########################################### + # 后置条件: 清理创建用户,有助多次测试 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"管理员").click() + time.sleep(3) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("createadmin") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/thead/tr/th[1]/label/input").click() + elif web_type == 'chrome': + element = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/thead/tr/th[1]/label/input") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_users").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + driver.quit() + + def tearDown(self): + self.driver.quit() + + +if __name__ == "__main__": + unittest.main() \ No newline at end of file diff --git a/vatus/testcases/test_education/test_user_management/test_E139_delete_administrator.py b/vatus/testcases/test_education/test_user_management/test_E139_delete_administrator.py new file mode 100644 index 0000000..45634a0 --- /dev/null +++ b/vatus/testcases/test_education/test_user_management/test_E139_delete_administrator.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +import time +import unittest + +from selenium import webdriver + +import settings + + +class DeleteAdministrator(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("education_base_url") + + def test_E139_delete_administrator(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() + ########################################### + # 前置条件:登录系统,创建测试数据 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"管理员").click() + time.sleep(3) + teacher_names = ['deleteadmin01','deleteadmin02','deleteadmin03','deleteadm04'] + for teacher_name in teacher_names: + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys(teacher_name) + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys(teacher_name) + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys(teacher_name+"@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + ########################################### + # 步骤1:未勾选任何一条学生记录,点击“删除”按钮 + ########################################### + time.sleep(5) + driver.find_element_by_id("delete_users").click() + time.sleep(1) + self.assertEqual("请选择一个或多个要删除的用户", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + time.sleep(8) + ########################################### + # 步骤2:多选删除 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("deleteadmin") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/thead/tr/th[1]/label/input").click() + elif web_type == 'chrome': + element = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/thead/tr/th[1]/label/input") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_users").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + ########################################### + # 步骤3:弹出删除框,但是取消 & 单选删除 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("deleteadm") + time.sleep(5) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/tbody/tr/td[6]/div/a[2]").click() + time.sleep(5) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[4]/div[2]/div/div[3]/button[2]").click() + time.sleep(3) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("deleteadm") + time.sleep(5) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/tbody/tr/td[6]/div/a[2]").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_education/test_user_management/test_E142_disable_enable_administrator.py b/vatus/testcases/test_education/test_user_management/test_E142_disable_enable_administrator.py new file mode 100644 index 0000000..7796dd4 --- /dev/null +++ b/vatus/testcases/test_education/test_user_management/test_E142_disable_enable_administrator.py @@ -0,0 +1,169 @@ +# -*- coding: utf-8 -*- +import time +import unittest + +from selenium import webdriver + +import settings + + +class DisableEnableAdministrator(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("education_base_url") + + # chrome 浏览器存在兼容问题 + def test_E142_disable_enable_administrator(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() + ########################################### + # 前置条件:登录系统,创建测试数据 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"管理员").click() + time.sleep(3) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("admin01") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("admin01") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("admin01@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + self.assertEqual("用户 admin01 创建成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + ########################################### + # 步骤1:禁用新建用户,新建用户无法登录 + ########################################### + time.sleep(8) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("admin01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("status_btn").click() + elif web_type == 'chrome': + continue + #element = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/div[2]/div[2]/div/table/tbody/tr/td[5]/span/label/input") + #webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(11) + + if web_type == 'firefox': + driver.find_element_by_id("status_btn").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("status_btn") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(11) + + if web_type == 'firefox': + driver.find_element_by_id("status_btn").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("status_btn") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(11) + + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin01") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("123456") + driver.find_element_by_id("login_btn").click() + time.sleep(12) + login_text = driver.find_element_by_id("login_state").text + self.assertEqual("用户处于禁用状态禁止登录", login_text) + ########################################### + # 步骤2:激活新建用户,新建用户可以登录 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"管理员").click() + time.sleep(3) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("admin01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("status_btn").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("status_btn") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(11) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin01") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("123456") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + ########################################### + # 后置条件: 清理创建用户,有助多次测试 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"管理员").click() + time.sleep(3) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("admin01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/thead/tr/th[1]/label/input").click() + elif web_type == 'chrome': + element = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/thead/tr/th[1]/label/input") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_users").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() \ No newline at end of file diff --git a/vatus/testcases/test_education/test_user_management/test_E79_create_student.py b/vatus/testcases/test_education/test_user_management/test_E79_create_student.py new file mode 100644 index 0000000..6828259 --- /dev/null +++ b/vatus/testcases/test_education/test_user_management/test_E79_create_student.py @@ -0,0 +1,199 @@ +# -*- coding: utf-8 -*- +import time +import unittest + +from selenium import webdriver + +import settings + + +class CreateStudent(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("education_base_url") + + def test_E79_create_student(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() + ########################################### + # 前置条件:登录系统 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(5) + ########################################### + # 步骤1:全部输入为空,检查提示 + ########################################### + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"学生").click() + time.sleep(3) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("请输入用户名", driver.find_element_by_id("username-error").text) + self.assertEqual("请输入姓名", driver.find_element_by_id("fullname-error").text) + self.assertEqual("请输入邮件地址", driver.find_element_by_id("email-error").text) + self.assertEqual("请输入用户密码", driver.find_element_by_id("password-error").text) + self.assertEqual("请输入用户密码", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤3:长度输入不符合,密码不一致,检查提示 + ########################################### + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("username-error").text) + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("fullname-error").text) + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").\ + send_keys("123456789012345678901234567890123456789012345678901234567890@dsfd.com") + time.sleep(1) + self.assertEqual("长度1-64个字", driver.find_element_by_id("email-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("1234") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("1234") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("12345") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + self.assertEqual("确认密码不一致", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤4:正常输入 + ########################################### + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("student01") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("student01") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("student01@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + self.assertEqual("用户 student01 创建成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + ########################################### + # 步骤5:正常输入但ID已存在,检查提示信息 + ########################################### + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("student01") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("student01") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("student02@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("用户名已经存在", driver.find_element_by_id("username-error").text) + ########################################### + # 步骤5:正常输入但邮箱已存在,检查提示信息 + ########################################### + driver.find_element_by_class_name("close").click() + time.sleep(1) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("student02") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("student02") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("student01@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("邮件地址已被使用", driver.find_element_by_id("email-error").text) + time.sleep(1) + driver.find_element_by_class_name("close").click() + time.sleep(1) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("student01") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("123456") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + ########################################### + # 后置条件: 清理创建用户,有助多次测试 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"学生").click() + time.sleep(1) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("student01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_user").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + driver.quit() + + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_education/test_user_management/test_E81_delete_student.py b/vatus/testcases/test_education/test_user_management/test_E81_delete_student.py new file mode 100644 index 0000000..c01fbef --- /dev/null +++ b/vatus/testcases/test_education/test_user_management/test_E81_delete_student.py @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- +import time +import unittest + +from selenium import webdriver + +import settings + + +class DeleteStudent(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("education_base_url") + + def test_E81_delete_student(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() + ########################################### + # 前置条件:登录系统,创建测试数据 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"学生").click() + time.sleep(3) + student_names = ['deletestudent01','deletestudent02','deletestudent03','deletestu04'] + for student_name in student_names: + driver.find_element_by_id("create_user").click() + time.sleep(2) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys(student_name) + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys(student_name) + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys(student_name+"@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + ########################################### + # 步骤1:未勾选任何一条学生记录,点击“删除”按钮 + ########################################### + time.sleep(5) + driver.find_element_by_id("delete_user").click() + time.sleep(1) + self.assertEqual("请选择一个或多个要删除的用户", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + time.sleep(8) + ########################################### + # 步骤2:多选删除 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("deletestudent") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_user").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + ########################################### + # 步骤3:单选删除 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("deletestu") + time.sleep(5) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/tbody/tr/td[6]/div/a[2]").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + ########################################### + # 步骤4:弹出删除框,但是取消 + ########################################### + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/tbody/tr/td[6]/div/a[2]").click() + time.sleep(5) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[4]/div[2]/div/div[3]/button[2]").click() + time.sleep(3) + + driver.quit() + + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_education/test_user_management/test_E82_reset_student_password.py b/vatus/testcases/test_education/test_user_management/test_E82_reset_student_password.py new file mode 100644 index 0000000..3215f03 --- /dev/null +++ b/vatus/testcases/test_education/test_user_management/test_E82_reset_student_password.py @@ -0,0 +1,149 @@ +# -*- coding: utf-8 -*- +import time +import unittest + +from selenium import webdriver + +import settings + + +class ResetStudentPassword(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("education_base_url") + + def test_E82_reset_student_password(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() + ########################################### + # 前置条件:登录系统 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"学生").click() + time.sleep(3) + ########################################### + # 步骤1:不选任何学生,点击重置,检查提示 + ########################################### + driver.find_element_by_id("modify_password").click() + time.sleep(2) + self.assertEqual("请选择一个或多个要重置密码的用户", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + time.sleep(8) + ########################################### + # 步骤2:重置密码输入为空 + ########################################### + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("modify_password").click() + time.sleep(2) + driver.find_element_by_id("confirm_action").click() + self.assertEqual("请输入用户密码", driver.find_element_by_id("password-error").text) + self.assertEqual("请输入用户密码", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤3:重置密码输入长度不符合要求 + ########################################### + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("1234") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("1234") + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("1234567890123456789012345678901" + "234567890123456789012345678901234567890") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456789012345678901234567890123" + "4567890123456789012345678901234567890") + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤4:重置密码两次输入不一致 + ########################################### + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("87654321") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("987654321") + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("确认密码不一致", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤4:重置密码成功验证登录 + ########################################### + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("987654321") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("987654321") + driver.find_element_by_id("confirm_action").click() + time.sleep(8) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("student") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("987654321") + driver.find_element_by_id("login_btn").click() + time.sleep(3) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + ########################################### + # 后置条件: 恢复重置为初始密码 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"学生").click() + time.sleep(3) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("modify_password").click() + time.sleep(2) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("admin123") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("admin123") + driver.find_element_by_id("confirm_action").click() + time.sleep(3) + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_education/test_user_management/test_E83_modify_the_students_information.py b/vatus/testcases/test_education/test_user_management/test_E83_modify_the_students_information.py new file mode 100644 index 0000000..6bea60c --- /dev/null +++ b/vatus/testcases/test_education/test_user_management/test_E83_modify_the_students_information.py @@ -0,0 +1,138 @@ +# -*- coding: utf-8 -*- +import time +import unittest + +from selenium import webdriver + +import settings + + +class ModifyStudentInfo(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("education_base_url") + + def test_E83_modify_the_students_information(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() + ########################################### + # 前置条件:登录系统,创建测试数据 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"学生").click() + time.sleep(3) + driver.find_element_by_id("create_user").click() + time.sleep(2) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("student01") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("student01") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("student01@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + ########################################### + # 步骤1:姓名、邮件输入留空,检查提示 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("student01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/" + "div[2]/div[2]/div[2]/div/table/tbody/tr/td[6]/div/a[1]").click() + elif web_type == 'chrome': + element = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/" + "div[2]/div[2]/div[2]/div/table/tbody/tr/td[6]/div/a[1]") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + self.assertEqual('true', driver.find_element_by_id("username").get_attribute("readonly")) + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("email").clear() + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("请输入姓名", driver.find_element_by_id("fullname-error").text) + self.assertEqual("请输入邮件地址", driver.find_element_by_id("email-error").text) + ########################################### + # 步骤2:姓名、邮件输入过长,检查提示 + ########################################### + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").\ + send_keys("12345678901234567890123456789012345678901234567890@12345678901234567.com") + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("fullname-error").text) + self.assertEqual("长度1-64个字", driver.find_element_by_id("email-error").text) + ########################################### + # 步骤3:邮箱编辑输入格式不正确,检查提示 + ########################################### + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("test@@dfd.com") + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("请输入有效的电子邮件地址", driver.find_element_by_id("email-error").text) + ########################################### + # 步骤4:邮箱已被其他用户使用,检查提示 + ########################################### + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("vinzor") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("student@example.com") + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("邮件地址已被使用", driver.find_element_by_id("email-error").text) + ########################################### + # 步骤5:正常合理输入,成功编辑 + ########################################### + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("test11@vinzor.com") + driver.find_element_by_id("confirm_action").click() + time.sleep(3) + self.assertEqual("用户 student01 信息修改成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + ########################################### + # 后置条件: 清理创建用户,有助多次测试 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("student01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_user").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_education/test_user_management/test_E85_create_teacher.py b/vatus/testcases/test_education/test_user_management/test_E85_create_teacher.py new file mode 100644 index 0000000..21b5494 --- /dev/null +++ b/vatus/testcases/test_education/test_user_management/test_E85_create_teacher.py @@ -0,0 +1,201 @@ +# -*- coding: utf-8 -*- +import time +import unittest + +from selenium import webdriver + +import settings + + +class CreateTeacher(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("education_base_url") + + def test_E85_create_teacher(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() + ########################################### + # 前置条件:登录系统 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(5) + ########################################### + # 步骤1:全部输入为空,检查提示 + ########################################### + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"教师").click() + time.sleep(3) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("请输入用户名", driver.find_element_by_id("username-error").text) + self.assertEqual("请输入姓名", driver.find_element_by_id("fullname-error").text) + self.assertEqual("请输入邮件地址", driver.find_element_by_id("email-error").text) + self.assertEqual("请输入用户密码", driver.find_element_by_id("password-error").text) + self.assertEqual("请输入用户密码", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤3:长度输入不符合,密码不一致,检查提示 + ########################################### + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("username-error").text) + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("fullname-error").text) + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").\ + send_keys("123456789012345678901234567890123456789012345678901234567890@dsfd.com") + time.sleep(1) + self.assertEqual("长度1-64个字", driver.find_element_by_id("email-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("1234") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("1234") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("12345") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + self.assertEqual("确认密码不一致", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤4:正常输入 + ########################################### + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("createteacher") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("createteacher") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("createteacher@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + self.assertEqual("用户 createteacher 创建成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + ########################################### + # 步骤5:正常输入但ID已存在,检查提示信息 + ########################################### + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("createteacher") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("createteacher") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("teacher02@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("用户名已经存在", driver.find_element_by_id("username-error").text) + ########################################### + # 步骤5:正常输入但邮箱已存在,检查提示信息 + ########################################### + driver.find_element_by_class_name("close").click() + time.sleep(1) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("teacher02") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("teacher02") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("createteacher@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("邮件地址已被使用", driver.find_element_by_id("email-error").text) + time.sleep(1) + driver.find_element_by_class_name("close").click() + time.sleep(1) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("createteacher") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("123456") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + ########################################### + # 后置条件: 清理创建用户,有助多次测试 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"教师").click() + time.sleep(3) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("createteacher") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_user").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() \ No newline at end of file diff --git a/vatus/testcases/test_education/test_user_management/test_E87_delete_teacher.py b/vatus/testcases/test_education/test_user_management/test_E87_delete_teacher.py new file mode 100644 index 0000000..3971329 --- /dev/null +++ b/vatus/testcases/test_education/test_user_management/test_E87_delete_teacher.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- +import time +import unittest + +from selenium import webdriver + +import settings + + +class DeleteTeacher(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("education_base_url") + + def test_E87_delete_teacher(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() + ########################################### + # 前置条件:登录系统,创建测试数据 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"教师").click() + time.sleep(3) + teacher_names = ['deleteteacher01','deleteteacher02','deleteteacher03','deletetea04'] + for teacher_name in teacher_names: + driver.find_element_by_id("create_user").click() + time.sleep(2) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys(teacher_name) + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys(teacher_name) + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys(teacher_name+"@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + ########################################### + # 步骤1:未勾选任何一条学生记录,点击“删除”按钮 + ########################################### + time.sleep(5) + driver.find_element_by_id("delete_user").click() + time.sleep(2) + self.assertEqual("请选择一个或多个要删除的用户", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + time.sleep(8) + ########################################### + # 步骤2:多选删除 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("deleteteacher") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_user").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + ########################################### + # 步骤3:单选删除 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("deletetea") + time.sleep(5) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/tbody/tr/td[6]/div/a[2]").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + ########################################### + # 步骤4:弹出删除框,但是取消 + ########################################### + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/tbody/tr/td[6]/div/a[2]").click() + time.sleep(5) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[4]/div[2]/div/div[3]/button[2]").click() + time.sleep(3) + + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_education/test_user_management/test_E88_modify_the_teachers_information.py b/vatus/testcases/test_education/test_user_management/test_E88_modify_the_teachers_information.py new file mode 100644 index 0000000..8e279fa --- /dev/null +++ b/vatus/testcases/test_education/test_user_management/test_E88_modify_the_teachers_information.py @@ -0,0 +1,138 @@ +# -*- coding: utf-8 -*- +import time +import unittest + +from selenium import webdriver + +import settings + + +class ModifyTeacherInfo(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("education_base_url") + + def test_E88_modify_the_teachers_information(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() + ########################################### + # 前置条件:登录系统,创建测试数据 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"教师").click() + time.sleep(3) + driver.find_element_by_id("create_user").click() + time.sleep(2) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("teachert01") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("teachert01") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("teachert01@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + ########################################### + # 步骤1:姓名、邮件输入留空,检查提示 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("teachert01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/" + "div[2]/div[2]/div[2]/div/table/tbody/tr/td[6]/div/a[1]").click() + elif web_type == 'chrome': + element = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/" + "div[2]/div[2]/div[2]/div/table/tbody/tr/td[6]/div/a[1]") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + self.assertEqual('true', driver.find_element_by_id("username").get_attribute("readonly")) + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("email").clear() + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("请输入姓名", driver.find_element_by_id("fullname-error").text) + self.assertEqual("请输入邮件地址", driver.find_element_by_id("email-error").text) + ########################################### + # 步骤2:姓名、邮件输入过长,检查提示 + ########################################### + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").\ + send_keys("12345678901234567890123456789012345678901234567890@12345678901234567.com") + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("fullname-error").text) + self.assertEqual("长度1-64个字", driver.find_element_by_id("email-error").text) + ########################################### + # 步骤3:邮箱编辑输入格式不正确,检查提示 + ########################################### + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("test@@dfd.com") + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("请输入有效的电子邮件地址", driver.find_element_by_id("email-error").text) + ########################################### + # 步骤4:邮箱已被其他用户使用,检查提示 + ########################################### + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("vinzor") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("teacher@example.com") + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("邮件地址已被使用", driver.find_element_by_id("email-error").text) + ########################################### + # 步骤5:正常合理输入,成功编辑 + ########################################### + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("test11@vinzor.com") + driver.find_element_by_id("confirm_action").click() + time.sleep(3) + self.assertEqual("用户 teachert01 信息修改成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + ########################################### + # 后置条件: 清理创建用户,有助多次测试 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("teachert01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_user").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_education/test_user_management/test_E89_disable_enable_teacher.py b/vatus/testcases/test_education/test_user_management/test_E89_disable_enable_teacher.py new file mode 100644 index 0000000..876cc8f --- /dev/null +++ b/vatus/testcases/test_education/test_user_management/test_E89_disable_enable_teacher.py @@ -0,0 +1,156 @@ +# -*- coding: utf-8 -*- +import time +import unittest + +from selenium import webdriver + +import settings + + +class DisableEnableTeacher(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("education_base_url") + + def test_E89_disable_enable_teacher(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() + ########################################### + # 前置条件:登录系统,创建测试数据 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"教师").click() + time.sleep(3) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("teacher01") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("teacher01") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("teacher01@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + self.assertEqual("用户 teacher01 创建成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + ########################################### + # 步骤1:禁用新建用户,新建用户无法登录 + ########################################### + time.sleep(8) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("teacher01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("status_btn").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("status_btn") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(5) + self.assertEqual("用户 teacher01 禁用成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + time.sleep(8) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("teacher01") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("123456") + driver.find_element_by_id("login_btn").click() + time.sleep(2) + login_text = driver.find_element_by_id("login_state").text + self.assertEqual("用户处于禁用状态禁止登录", login_text) + ########################################### + # 步骤2:激活新建用户,新建用户可以登录 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"教师").click() + time.sleep(3) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("teacher01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("status_btn").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("status_btn") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + self.assertEqual("用户 teacher01 激活成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + time.sleep(8) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("teacher01") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("123456") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + ########################################### + # 后置条件: 清理创建用户,有助多次测试 + ########################################### + 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_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"教师").click() + time.sleep(3) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("teacher01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_user").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() \ No newline at end of file