From ddf66cf155af3805323ec55ae6814f2d23d40c07 Mon Sep 17 00:00:00 2001 From: 阳洁 <2077506045@qq.com> Date: 星期五, 28 七月 2023 18:42:30 +0800 Subject: [PATCH] 测评系统自动测试 --- testcase/test_caq.py | 136 ++++++++------------------------------------- 1 files changed, 24 insertions(+), 112 deletions(-) diff --git a/testcase/test_caq.py b/testcase/test_caq.py index cd7bf3c..30cac35 100644 --- a/testcase/test_caq.py +++ b/testcase/test_caq.py @@ -1,6 +1,7 @@ from datetime import datetime import time from selenium.webdriver.common.by import By +from selenium.common.exceptions import TimeoutException import pytest from selenium import webdriver @@ -16,149 +17,57 @@ driver = None test_package_name = "CAQ鑷姩娴嬭瘯鍖�-20230718101350" - @pytest.mark.parametrize('data_read', ["login"], indirect=True) - def test_login(self, data_read: dict): - """ - 鎵撳紑椤甸潰骞惰繘琛岀櫥褰曟祴璇� - :param data_read: 鎵ц鏁版嵁璇诲彇鐨勫嚱鏁板苟鑾峰彇鍒拌繑鍥炲�� - :return: - """ - TestCAQ.driver = webdriver.Chrome() - driver = TestCAQ.driver - login_page = LoginPage(driver) - try: - # 鎵撳紑閾炬帴 - driver.get(data_read["url"]) - except: - # 閾炬帴鎵撳紑鍑虹幇寮傚父璇存槑閾炬帴鏃犳硶璁块棶,鎹曡幏寮傚父浣嗕笉鍋氬鐞� - pass - - # 娴忚鍣ㄧ獥鍙f渶澶у寲 - driver.maximize_window() - # 鑾峰彇鍒板埛鏂版寜閽苟姣�10绉掔偣鍑讳竴娆�,鐭ラ亾鍒锋柊鎸夐挳娑堝け - while True: - try: - # 鍒ゆ柇鎵撳紑鐨勯〉闈㈡槸鍚﹀瓨鍦ㄥ埛鏂版寜閽� - reload_btn = login_page.get_element((By.XPATH, "//div[@id='buttons']/div/button[@id='reload-button']")) - # 鐐瑰嚮鍒锋柊鎸夐挳 - reload_btn.click() - time.sleep(10) - except: - # 鍑虹幇寮傚父琛ㄧず涓嶅瓨鍦ㄥ埛鏂版寜閽� - # 鎺ョ潃鍒ゆ柇鏄惁瀛樺湪nginx error! - try: - nginx_error = login_page.get_element((By.XPATH, "//strong[text() = 'nginx error!']")) - # 瀛樺湪鍒欑潯鐪�10绉� - time.sleep(10) - except: - break - - login_page.login(data_read["username"], data_read["password"], data_read["code"]) - time.sleep(2) - assert login_page.is_login_success() - @pytest.mark.parametrize('data_read', ["CAQ"], indirect=True) - def test_create_package(self, data_read: dict): + def test_create_package(self, data_read: dict, driver): """ 鍒涘缓娴嬭瘯鍖� :param data_read: 璇诲彇鏁版嵁 :return: """ - # 鑾峰彇driver - driver = TestCAQ.driver # 鍒涘缓home椤甸潰鐨勫璞� home_page = HomePage(driver) # 鐐瑰嚮宸︿晶鑿滃崟杩涘叆椤甸潰 home_page.menu_select(data_read["menu"]) # 鍒涘缓娴嬭瘯鍖呭垪琛ㄩ〉闈㈢殑瀵硅薄 test_package_list = TestPackageListPage(driver) - # 鐐瑰嚮鍒涘缓鎸夐挳 - test_package_list.create_btn() - # 鑾峰彇褰撳墠鏃堕棿 - current_time = datetime.now() - # 杞崲涓哄瓧绗︿覆 - time_str = current_time.strftime("%Y%m%d%H%M%S") - # 鍒涘缓娴嬭瘯鍖呭~鍐欑殑鍙傛暟 - # 娴嬭瘯鍖呭悕绉� - test_package_name = "CAQ鑷姩娴嬭瘯鍖�-" + time_str - # 璁剧疆娴嬭瘯鍖呭悕绉颁负绫诲彉閲� - TestCAQ.test_package_name = test_package_name - # 鑾峰彇鍒涘缓娴嬭瘯鍖呯殑鏁版嵁 - create_data = data_read["add"] - # 濉啓娴嬭瘯鍖呭悕绉� - test_package_list.testPackageName_input(test_package_name) - # 濉啓鎶ュ憡浼佷笟鍚嶇О - test_package_list.reportCompanyName_input(create_data["company"]) - # 閫夋嫨娴嬭瘯鍖呯被鍨� - test_package_list.testPackageType_select(create_data["type"]) - # 閫夋嫨浜у搧鍖� - test_package_list.prodTree_select(create_data["product"]) - # 杈撳叆hr閭 - test_package_list.hrReportEmail_input(create_data["hrEmail"]) - # 杈撳叆鏈夋晥鏈� - test_package_list.invalidTime_input(create_data["invalid"]) - # 閫夋嫨閭�璇烽偖浠惰瑷�绫诲瀷 - test_package_list.testTemplateLangType_select(create_data["memberLang"]) - # 閫夋嫨HR閭欢璇█绫诲瀷 - test_package_list.hrTemplateLangType_select(create_data["hrReportLang"]) - # 閫夋嫨鎶ュ憡妯℃澘 - test_package_list.reportTemplate_select(create_data["reportTemplate"]) - # 鐐瑰嚮娴嬭瘯鑰呮帴鏀舵姤鍛� - test_package_list.autoSendReport_checkbox() - # 閫夋嫨娴嬭瘯鑰呮姤鍛婇偖绠辫瑷�绫诲瀷 - test_package_list.memberReportLangType_select(create_data["memberReportLang"]) - # 鐐瑰嚮纭鎸夐挳 - test_package_list.add_confirm() - time.sleep(2) - # 鍒ゆ柇鏄惁鎴愬姛鍒涘缓 - assert test_package_list.is_create_success(test_package_name) + # 鍒涘缓娴嬭瘯鍖呭苟鎺ユ敹鍒涘缓鐨勬祴璇曞寘鍚嶇О + create_package_name = test_package_list.create_package(data_read["add"]) + # 璧嬪�煎埌绫诲彉閲� + TestCAQ.test_package_name = create_package_name time.sleep(5) + # 鍒ゆ柇鏄惁鎴愬姛鍒涘缓 + assert test_package_list.is_create_success(create_package_name) @pytest.mark.parametrize('data_read', ["CAQ"], indirect=True) - def test_open_url(self, data_read: dict): + def test_open_url(self, data_read: dict, driver): """ 鎵撳紑鍒嗕韩閾炬帴 :return: """ - # 鑾峰彇driver - driver = TestCAQ.driver - # # 鍒涘缓home椤甸潰鐨勫璞� - # home_page = HomePage(driver) - # # 鐐瑰嚮宸︿晶鑿滃崟杩涘叆椤甸潰 - # home_page.menu_select(data_read["menu"]) # 鍒涘缓娴嬭瘯鍖呭垪琛ㄩ〉闈㈢殑瀵硅薄 test_package_list = TestPackageListPage(driver) - # 鍕鹃�夋柊鍒涘缓鐨勬祴璇曞寘 - test_package_list.click_package_checkbox(TestCAQ.test_package_name) - # 鐐瑰嚮鐢熸垚鍒嗕韩閾炬帴鎸夐挳 - test_package_list.click_share_1_btn() - # 鑾峰彇鍒皍rl - url = test_package_list.get_share_url() + # 鑾峰彇鍒板垎浜摼鎺� + url = test_package_list.get_share_url(TestCAQ.test_package_name) # 鎵撳紑鏂版爣绛鹃〉鍔犺浇url - test_package_list.open_new_table_to_url(url) + test_package_list.goto_new_table(url) # 鍒涘缓鍒嗕韩椤甸潰瀵硅薄 share_add = ShareAddPage(driver) # 濉啓淇℃伅鎻愪氦骞惰幏鍙栨祴璇曢摼鎺� name = random_string(8) email = name + "@gmail.com" - test_url = share_add.page_default_operation(name, email) + test_url = share_add.get_test_url(name, email) # 褰撳墠椤甸潰鎵撳紑閾炬帴 - driver.get(test_url) + share_add.goto(test_url) # 鐐瑰嚮鎻愪氦鎸夐挳 - share_add.submit_btn() + share_add.click(share_add.es.submit_btn, timeout=10) # 鑾峰彇鏁版嵁 info = data_read["info"] # 濉啓鍩烘湰淇℃伅骞舵彁浜� share_add.fill_info(email, info["position"], info["dept"]) - time.sleep(5) - def test_answer(self): - # 鑾峰彇driver - driver = TestCAQ.driver + def test_answer(self, driver): # 鍒涘缓answer瀵硅薄 answer_page = CAQAnswerPage(driver) - # 鐐瑰嚮寮�濮嬫祴璇� - answer_page.start_btn() # 寮�濮嬬瓟棰� flag = answer_page.answer() # 绛斿畬棰樺叧闂綋鍓嶆爣绛鹃〉 @@ -169,14 +78,17 @@ assert flag return - def test_delete_package(self): - # 鑾峰彇driver - driver = TestCAQ.driver + def test_delete_package(self, driver): # 鍒涘缓娴嬭瘯鍖呭垪琛ㄩ〉闈㈢殑瀵硅薄 test_package_list = TestPackageListPage(driver) # 鍒犻櫎娴嬭瘯鍖� - test_package_list.delete_package() - time.sleep(5) + test_package_list.delete_package(TestCAQ.test_package_name) + # 鍒ゆ柇鍒犻櫎鏄惁鎴愬姛 + try: + test_package_list.wait_visible(test_package_list.es.operate_success_layer) + assert True + except TimeoutException: + assert False # 鍏抽棴 driver.quit() -- Gitblit v1.9.1