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