From 13af5663bd892c6f7a4e35b9761d12f135def81b Mon Sep 17 00:00:00 2001 From: yj <2077506045@qq.com> Date: 星期三, 24 七月 2024 18:25:19 +0800 Subject: [PATCH] 测评系统自动测试 --- testcase/test_jaq.py | 148 +++++++++++++++---------------------------------- 1 files changed, 46 insertions(+), 102 deletions(-) diff --git a/testcase/test_jaq.py b/testcase/test_jaq.py index 4d2701a..15b59e6 100644 --- a/testcase/test_jaq.py +++ b/testcase/test_jaq.py @@ -8,55 +8,17 @@ from po.home_page import HomePage from po.test_package_list_page import TestPackageListPage from po.share_add_page import ShareAddPage -from po.answer_page import AnswerPage +from po.jaq_answer_page import JAQAnswerPage from comm.my_random import * class TestJAQ: driver = None - test_package_name = "MAQ鑷姩娴嬭瘯鍖�-20230711151825" + test_package_name = None - def test_login(self): - """ - 鎵撳紑椤甸潰骞惰繘琛岀櫥褰曟祴璇� - :return: - """ - TestJAQ.driver = webdriver.Chrome() - driver = TestJAQ.driver - login_page = LoginPage(driver) - try: - # 鎵撳紑閾炬帴 - driver.get("http://161.117.57.194/login?lang=zh_CN") - 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("admin", "ots@2021!!", "ots") - time.sleep(2) - assert login_page.is_login_success() - - def test_create_package(self): + @pytest.mark.parametrize('data_read', ["JAQ"], indirect=True) + def test_create_package(self, data_read: dict): """ 鍒涘缓娴嬭瘯鍖� :return: @@ -66,8 +28,7 @@ # 鍒涘缓home椤甸潰鐨勫璞� home_page = HomePage(driver) # 鐐瑰嚮宸︿晶鑿滃崟杩涘叆椤甸潰 - home_page.menu_select("娴嬭瘯鍖呯鐞�/娴嬭瘯鍖呭垪琛�") - + home_page.menu_select(data_read["menu"]) # 鍒涘缓娴嬭瘯鍖呭垪琛ㄩ〉闈㈢殑瀵硅薄 test_package_list = TestPackageListPage(driver) # 鐐瑰嚮鍒涘缓鎸夐挳 @@ -81,66 +42,51 @@ test_package_name = "JAQ鑷姩娴嬭瘯鍖�-" + time_str # 璁剧疆娴嬭瘯鍖呭悕绉颁负绫诲彉閲� TestJAQ.test_package_name = test_package_name - # 鎶ュ憡浼佷笟鍚嶇О - report_company_name = "TAI娴嬭瘯" - # 娴嬭瘯鍖呯被鍨� - test_package_type = "宸ヤ綔鍒嗘瀽鍖�" - # 浜у搧鍖� - prod_name = "JAQ" - # HR閭 - hr_email = "2077506045@qq.com" - # 鏈夋晥鏈� - invalid_time = "2024-01-01 00:00:00" - # 娴嬭瘯鑰呴個璇烽偖浠惰瑷�绫诲瀷 - test_email_lang_type = "涓枃" - # hr鎶ュ憡閭欢璇█绫诲瀷 - hr_report_email_lang_type = "涓枃" - # 鎶ュ憡妯℃澘 - report_template = "JAQ-Complete-Chinese" - # 瑕佽瘎浠风殑宀椾綅 - position = "涓荤" - # 鑱屼笟澶х被 - professional_category = "绠$悊" - # 涓婄骇宀椾綅 - superior_position = "鎬荤粡鐞�" - # 娴嬭瘯鑰呮姤鍛婇偖浠惰瑷�绫诲瀷 - member_report_email_lang_type = "涓枃" + + # 鑾峰彇鍒涘缓娴嬭瘯鍖呯殑鏁版嵁 + create_data = data_read["add"] # 濉啓娴嬭瘯鍖呭悕绉� - test_package_list.testPackageName_input(test_package_name) + test_package_list.fill(test_package_list.es.add_testPackageName_input, test_package_name) # 濉啓鎶ュ憡浼佷笟鍚嶇О - test_package_list.reportCompanyName_input(report_company_name) + test_package_list.fill(test_package_list.es.add_reportCompanyName_input, create_data["company"]) # 閫夋嫨娴嬭瘯鍖呯被鍨� - test_package_list.testPackageType_select(test_package_type) + test_package_list.select(test_package_list.es.add_testPackageType_select, + test_package_list.es.add_testPackageType_option, create_data["type"]) # 閫夋嫨浜у搧鍖� - test_package_list.prodTree_select(prod_name) + test_package_list.prodTree_select(create_data["product"]) # 杈撳叆hr閭 - test_package_list.hrReportEmail_input(hr_email) + test_package_list.fill(test_package_list.es.add_hrEmail_input, create_data["hrEmail"]) # 杈撳叆鏈夋晥鏈� - test_package_list.invalidTime_input(invalid_time) + test_package_list.fill(test_package_list.es.add_invalidTime, create_data["invalid"]) # 閫夋嫨閭�璇烽偖浠惰瑷�绫诲瀷 - test_package_list.testTemplateLangType_select(test_email_lang_type) + test_package_list.select(test_package_list.es.add_templateLangType_select, + test_package_list.es.add_templateLangType_option, create_data["memberLang"]) # 閫夋嫨HR閭欢璇█绫诲瀷 - test_package_list.hrTemplateLangType_select(hr_report_email_lang_type) + test_package_list.select(test_package_list.es.add_hrTemplateLangType_select, + test_package_list.es.add_hrTemplateLangType_option, create_data["hrReportLang"]) # 閫夋嫨鎶ュ憡妯℃澘 - test_package_list.reportTemplate_select(report_template) + test_package_list.select(test_package_list.es.add_reportTemplateId_select, + test_package_list.es.add_reportTemplateId_option, create_data["reportTemplate"]) # 杈撳叆瑕佽瘎浠风殑宀椾綅 - test_package_list.position_input(position) + test_package_list.fill(test_package_list.es.add_position_input, create_data["position"]) # 杈撳叆鑱屼笟澶х被 - test_package_list.professionalCategory_input(professional_category) + test_package_list.fill(test_package_list.es.add_professionalCategory_input, create_data["professionalCategory"]) # 杈撳叆涓婄骇宀椾綅 - test_package_list.superiorPosition_input(superior_position) + test_package_list.fill(test_package_list.es.add_superiorPosition_input, create_data["superiorPosition"]) # 鐐瑰嚮娴嬭瘯鑰呮帴鏀舵姤鍛� - test_package_list.autoSendReport_checkbox() + test_package_list.click(test_package_list.es.add_autoSendReport_checkbox) # 閫夋嫨娴嬭瘯鑰呮姤鍛婇偖绠辫瑷�绫诲瀷 - test_package_list.memberReportLangType_select(member_report_email_lang_type) + test_package_list.select(test_package_list.es.add_memberReportLangType_select, test_package_list.es.add_memberReportLangType_option, create_data["memberReportLang"]) # 鐐瑰嚮纭鎸夐挳 - test_package_list.add_confirm() + test_package_list.click(test_package_list.es.add_confirm_btn) time.sleep(2) # 鍒ゆ柇鏄惁鎴愬姛鍒涘缓 assert test_package_list.is_create_success(test_package_name) + time.sleep(5) - def test_open_url(self): + @pytest.mark.parametrize('data_read', ["JAQ"], indirect=True) + def test_open_url(self, data_read: dict): """ 鎵撳紑鍒嗕韩閾炬帴 :return: @@ -149,44 +95,42 @@ driver = TestJAQ.driver # 鍒涘缓娴嬭瘯鍖呭垪琛ㄩ〉闈㈢殑瀵硅薄 test_package_list = TestPackageListPage(driver) - # 鍕鹃�夋柊鍒涘缓鐨勬祴璇曞寘 - test_package_list.click_package_checkbox(TestJAQ.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(TestJAQ.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 = "http://161.117.57.194/exam-stu/#/ots/94830ada-8f6c-44c0-8946-79c43267d9c1/login" + test_url = share_add.get_test_url(name, email) # 褰撳墠椤甸潰鎵撳紑閾炬帴 driver.get(test_url) # 鐐瑰嚮鎻愪氦鎸夐挳 - share_add.submit_btn() + share_add.click(share_add.es.submit_btn) + # 鑾峰彇鏁版嵁 + info = data_read["info"] # 濉啓鍩烘湰淇℃伅骞舵彁浜� - share_add.fill_info(email, "鑱屽憳", "浜轰簨閮�") - # 鐐瑰嚮寮�濮嬫祴璇� - share_add.submit_btn() + share_add.fill_info(email, info["position"], info["dept"]) + time.sleep(5) def test_answer(self): # 鑾峰彇driver driver = TestJAQ.driver # 鍒涘缓answer瀵硅薄 - answer_page = AnswerPage(driver) + answer_page = JAQAnswerPage(driver) + # 鐐瑰嚮寮�濮嬫祴璇� + answer_page.start_btn() # 寮�濮嬬瓟棰� - # flag = answer_page.answer_MAQ() - # if not flag: - # assert flag - # return + flag = answer_page.answer() # 绛斿畬棰樺叧闂綋鍓嶆爣绛鹃〉 driver.close() # 鍒囨崲鍒扮涓�涓爣绛鹃〉 answer_page.switch_window(0) + if flag is not None or not flag: + assert flag + return def test_delete_package(self): # 鑾峰彇driver @@ -194,7 +138,7 @@ # 鍒涘缓娴嬭瘯鍖呭垪琛ㄩ〉闈㈢殑瀵硅薄 test_package_list = TestPackageListPage(driver) # 鍒犻櫎娴嬭瘯鍖� - test_package_list.delete_package() + test_package_list.delete_package(TestJAQ.test_package_name) time.sleep(5) # 鍏抽棴 driver.quit() -- Gitblit v1.9.1