summaryrefslogtreecommitdiff
path: root/cases/profiles/text_js_files.py
diff options
context:
space:
mode:
Diffstat (limited to 'cases/profiles/text_js_files.py')
-rw-r--r--cases/profiles/text_js_files.py476
1 files changed, 476 insertions, 0 deletions
diff --git a/cases/profiles/text_js_files.py b/cases/profiles/text_js_files.py
new file mode 100644
index 00000000..e6e88b40
--- /dev/null
+++ b/cases/profiles/text_js_files.py
@@ -0,0 +1,476 @@
+# -*- coding: UTF-8 -*-
+import os
+import time
+import pytest
+from common.ui_common.profiles.js_files import JsFiles
+from common.read_data.read_data import ReadData
+from cases.conftest import demo_fixture
+from common.ui_common.profiles.profiles_public_operations import download_file
+import configparser
+import os
+import copy
+from config.workpath import workdir
+
+
+data = ReadData()
+
+
+class TestJsFiles:
+ @pytest.mark.parametrize("data", data.read_data_profiles("js_files.json"), ids=data.generate_id)
+ def test_css_files(self, demo_fixture, data):
+ cf = JsFiles(demo_fixture)
+ cf.js_files_case(data)
+
+ @pytest.mark.parametrize(
+ "data",
+ [
+ {
+ "ids": "创建js类型insert_files数据再修改css类型数据",
+ "model": "modify",
+ "script": "test_js_1.js->test_css_1.css",
+ "script_type": "js->css",
+ "insert_position": "Before Page Load->不修改"
+ }
+ ],
+ ids=["创建js类型insert_files数据再修改css类型数据"]
+ )
+ def test_js_files_modify(self, demo_fixture, data):
+ js_files = JsFiles(demo_fixture)
+ js_files_name = js_files.create(data)
+ time.sleep(3)
+ js_files.query(data, require_assertion=1, Name=js_files_name)
+ js_files.audit_log("Create")
+ js_files_dict = js_files.query(data, require_assertion=1, Name=js_files_name)
+ js_files.modify(data)
+ time.sleep(2)
+ js_files_dict2 = js_files.query(data, require_assertion=2, ID=js_files_dict["ID"])
+ js_files.audit_log("Edit")
+ js_files.query(data, require_assertion=2, ID=js_files_dict2["ID"], Name=js_files_dict2["Name"])
+ js_files.delete()
+
+ # 上传20M文件
+ @pytest.mark.parametrize(
+ "data",
+ [
+ {
+ "ids": "创建js类型insert_files数据20M文件大小测试",
+ "model": "create",
+ "script": "20MFile.css->",
+ "script_type": "css->",
+ }
+ ],
+ ids=["创建js类型insert_files数据20M文件大小测试"]
+ )
+ def test_js_files_create20M(self, demo_fixture, data):
+ js_files = JsFiles(demo_fixture)
+ js_files_name = js_files.create(data)
+ time.sleep(18)
+ js_files.query(data, Name=js_files_name)
+ js_files.delete()
+
+ # 上传大于20M文件 反向测试
+ @pytest.mark.parametrize(
+ "data",
+ [
+ {
+ "ids": "创建js类型insert_files数据超过20M文件大小测试",
+ "model": "create",
+ "script": "Exceed20MFile.css->",
+ "script_type": "css->",
+ }
+ ],
+ ids=["创建js类型insert_files数据超过20M文件大小测试"]
+ )
+ def test_js_files_createExceed20M(self, demo_fixture, data):
+ js_files = JsFiles(demo_fixture)
+ js_files_name = js_files.create(data)
+
+ # Name输入框测试
+ @pytest.mark.parametrize(
+ "data",
+ [
+ {
+ "ids": "创建js类型insert_files数据name测试",
+ "model": "create",
+ "script": "test_js_1.js->",
+ "script_type": "js->",
+ "insert_position": "After Page Load->"
+ }
+ ],
+ ids=["创建js类型insert_files数据name测试"]
+ )
+ def test_name(self, demo_fixture, data):
+ js_files = JsFiles(demo_fixture)
+ name_group = ("", "123", "test",
+ "testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest",
+ "1!@#$%^&*():\"{}|?><,./中文русскийEnglish")
+ for name in name_group:
+ js_files_name = js_files.create(data, name)
+ time.sleep(3)
+ if len(js_files_name) >= 4:
+ js_files.query(data, require_assertion=1, Name=js_files_name)
+ js_files.delete()
+ else:
+ print("创建失败")
+
+ # 错误信息校验、不输入必要数据
+ @pytest.mark.parametrize(
+ "data",
+ [
+ {
+ "ids": "创建js类型insert_files数据未上传文件测试",
+ "model": "create",
+ "script": "->",
+ "script_type": "css->",
+ },
+ {
+ "ids": "创建js类型insert_files数据文件类型为空测试",
+ "model": "create",
+ "script": "test_js_1.js->",
+ "script_type": "->",
+ },
+ {
+ "ids": "创建js类型insert_files数据上传错误类型文件测试",
+ "model": "create",
+ "script": "error_type.txt->",
+ "script_type": "->",
+ },
+ {
+ "ids": "创建js类型insert_files数据文件与文件类型不匹配测试",
+ "model": "create",
+ "script": "test_js_1.js->",
+ "script_type": "css->",
+ }
+ ],
+ ids=["创建js类型insert_files数据未上传文件测试", "创建js类型insert_files数据文件类型为空测试",
+ "创建js类型insert_files数据上传错误类型文件测试", "创建js类型insert_files数据文件与文件类型不匹配测试"]
+ )
+ def test_check_error(self, demo_fixture, data):
+ js_files = JsFiles(demo_fixture)
+ js_files.create(data)
+ time.sleep(1)
+
+ # 列设置测试
+ def test_column_setting(self, demo_fixture):
+ column_allname = ["UUID", "Vsys ID", "Name", "File", "Usage", "Modified Time",
+ "Last Modified By"]
+ column_requiredname = ["Name"]
+ column_defaultname = ["Name", "File", "Usage", "Modified Time", "Last Modified By"]
+ column_name = ["Name", "File", "Usage"]
+ js_files = JsFiles(demo_fixture)
+ js_files.column_setting(column_defaultname, column_flags=0)
+ js_files.column_setting(column_requiredname, column_flags=1)
+ js_files.column_setting(column_name, column_flags=3)
+ js_files.column_setting(column_allname, column_flags=2)
+
+ # 翻页测试
+ def test_turn_pages(self, demo_fixture):
+ js_files = JsFiles(demo_fixture)
+ js_files.turn_pages(2)
+
+ # 切换语言测试
+ def test_language_change(self, demo_fixture):
+ js_files = JsFiles(demo_fixture)
+ js_files.language_change(2)
+ js_files.language_change(1)
+ js_files.language_change(0)
+
+ # 文件下载测试
+ @pytest.mark.parametrize(
+ "data",
+ [
+ {
+ "ids": "创建js类型insert_files数据文件下载测试",
+ "model": "create",
+ "script": "test_js_1.js->",
+ "script_type": "js->",
+ "insert_position": "After Page Load->"
+ }
+ ],
+ ids=["创建js类型insert_files数据文件下载测试"]
+ )
+ def test_file_download(self, data):
+ time.sleep(1)
+ driver = download_file()
+ js_files = JsFiles(driver)
+ # 文件下载的路径
+ download_path = os.path.join(workdir, "testdata", "ui_file", "profiles", "download_file")
+ # 创建后下载文件
+ js_files_name = js_files.create(data)
+ time.sleep(2)
+ js_files.file_download(Name=js_files_name)
+ time.sleep(1)
+ file_name = data["script"].split("->")[0].strip()
+ print("file_name=", file_name)
+ file_path = os.path.join(download_path, file_name)
+ print("file_path=", file_path)
+ try:
+ assert os.path.exists(file_path), f"文件 {file_name} 不存在于 {download_path} 目录中"
+ os.remove(file_path)
+ print("文件删除成功")
+ except:
+ print("文件不存在")
+ js_files.query(data, Name=js_files_name)
+ js_files.delete()
+ driver.quit()
+
+ # vsys相关测试
+ # @pytest.mark.parametrize(
+ # "data",
+ # [
+ # {
+ # "ids": "创建js类型insert_files数据vsys测试",
+ # "model": "create",
+ # "script": "test_js_1.js->",
+ # "script_type": "js->",
+ # "insert_position": "After Page Load->"
+ # }
+ # ],
+ # ids=["创建js类型insert_files数据vsys测试"]
+ # )
+ # def test_invisible_tvsys(self, demo_fixture, data):
+ # time.sleep(1)
+ # js_files = JsFiles(demo_fixture)
+ # js_files.vsys_case(data, "PerformanceTestVsys", "Tvsys", "None", "UIAutoTestVsys", "Tvsys", "None") # 平级Tvsys不可见
+
+ # ReferenceCount测试
+ @pytest.mark.parametrize(
+ "data",
+ [
+ {
+ "ids": "创建js类型insert_files数据referenceCount测试",
+ "model": "create",
+ "script": "test_js_1.js->",
+ }
+ ],
+ ids=["创建js类型files数据referenceCount测试"]
+ )
+ def test_referenceCount(self, demo_fixture, data):
+ js_files = JsFiles(demo_fixture)
+ js_files_name = js_files.create(data) # 在UIAutoTestVsys下创建
+ time.sleep(2)
+ policy_name = js_files.policy_create(js_files_name)
+ js_files.referenceCount_view(Name=js_files_name)
+ time.sleep(1)
+ js_files.policy_query(Name=policy_name)
+ js_files.policy_delete()
+ js_files.query(data, Name=js_files_name)
+ js_files.delete()
+
+ # 列表页底部All 按钮测试
+ def test_listPageBottom_allSelect_case(self, demo_fixture):
+ js_files = JsFiles(demo_fixture)
+ js_files.listPageBottom_allSelect()
+
+ # create edit 页面元素校验测试用例
+ @pytest.mark.parametrize(
+ "data",
+ [
+ {
+ "ids": "创建js类型insert_files数据再修改css类型数据",
+ "model": "modify",
+ "script": "test_js_1.js->test_css_1.css",
+ "script_type": "js->css",
+ "insert_position": "Before Page Load->不修改"
+ }
+ ],
+ ids=["创建js类型insert_files数据再修改css类型数据"]
+ )
+ def test_check_createAndEditPageElement(self, demo_fixture, data):
+ js_files = JsFiles(demo_fixture)
+ js_files.check_createAndEditPageElement(data)
+
+ # link功能测试用例
+ @pytest.mark.parametrize(
+ "data", [
+ {
+ "ids": "创建js类型insert_files数据link测试用例",
+ "model": "create",
+ "script": "test_js_1.js->",
+ "script_type": "js->",
+ "insert_position": "After Page Load->"
+ }
+ ],
+ ids=["创建js类型insert_files数据link测试用例"]
+ )
+ def test_link_case(self, demo_fixture, data):
+ link_parse = configparser.ConfigParser()
+ link_parse_dir = os.path.join(workdir, "config", "linkcluster.ini")
+ link_parse.read(link_parse_dir, encoding="utf-8")
+ link_list_dict = []
+ link_list = [1] # 可取值 1、2、 3、4、5 #这些取值来自linkcluster.ini配置文件
+ for i in link_list:
+ tmp_dict = {}
+ link_index = "link_{}".format(i)
+ tmp_dict["link_dst_cluster"] = link_parse.get(link_index, "link_dst_cluster")
+ tmp_dict["link_dst_vsys"] = link_parse.get(link_index, "link_dst_vsys")
+ tmp_dict["url"] = link_parse.get(link_index, "url")
+ tmp_dict["username"] = link_parse.get(link_index, "username")
+ tmp_dict["passwd"] = link_parse.get(link_index, "passwd")
+ link_list_dict.append(copy.deepcopy(tmp_dict))
+ print(link_list_dict)
+ """ 传参查考
+ link_list_dict = [
+ {
+ "link_dst_cluster": "42.49-User4Link",
+ "link_dst_vsys": "Vsys2test",
+ "url": "http://192.168.42.49/#/login",
+ "username": "admin",
+ "passwd": "admin"
+ },
+ ]
+ """
+ js_files = JsFiles(demo_fixture)
+ js_files.check_link_case(data, link_list_dict=link_list_dict)
+
+ @pytest.mark.parametrize(
+ "data", [
+ {
+ "ids": "创建js类型insert_files数据再修改css类型数据",
+ "model": "modify",
+ "script": "test_js_1.js->test_css_1.css",
+ "script_type": "js->css",
+ "insert_position": "Before Page Load->不修改",
+ }
+ ],
+ ids=["创建js类型insert_files数据再修改css类型数据"]
+ )
+ @pytest.mark.linktest
+ def test_lnk_extern_mod_case(self, demo_fixture, data):
+ # 解析 linkcluster.ini 配置文件
+ link_parse = configparser.ConfigParser()
+ link_parse_dir = os.path.join(workdir, "config", "linkcluster.ini")
+ link_parse.read(link_parse_dir, encoding="utf-8")
+ link_list_dict = []
+ link_list = [1] # 1 代表 Link 其他源 cluster
+ for i in link_list:
+ tmp_dict = {}
+ link_index = "link_{}".format(i)
+ tmp_dict["link_dst_cluster"] = link_parse.get(link_index, "link_dst_cluster")
+ tmp_dict["link_dst_vsys"] = link_parse.get(link_index, "link_dst_vsys")
+ tmp_dict["url"] = link_parse.get(link_index, "url")
+ tmp_dict["username"] = link_parse.get(link_index, "username")
+ tmp_dict["passwd"] = link_parse.get(link_index, "passwd")
+ link_list_dict.append(copy.deepcopy(tmp_dict))
+ print(link_list_dict)
+ """ 传参查考
+ link_list_dict = [
+ {
+ "link_dst_cluster": "42.49-User4Link",
+ "link_dst_vsys": "Vsys2test",
+ "url": "http://192.168.42.49/#/login",
+ "username": "admin",
+ "passwd": "admin"
+ },
+ ]
+ """
+ ins = JsFiles(demo_fixture)
+ ins.chk_lnk_mod_case(data, link_list_dict=link_list_dict)
+
+ @pytest.mark.parametrize(
+ "data", [
+ {
+ "ids": "创建js类型insert_files数据再修改css类型数据",
+ "model": "modify",
+ "script": "test_js_1.js->test_css_1.css",
+ "script_type": "js->css",
+ "insert_position": "Before Page Load->不修改",
+ }
+ ],
+ ids=["创建js类型insert_files数据再修改css类型数据"]
+ )
+ @pytest.mark.linktest
+ def test_lnk_intern_mod_case(self, demo_fixture, data):
+ # 解析 linkcluster.ini 配置文件
+ link_parse = configparser.ConfigParser()
+ link_parse_dir = os.path.join(workdir, "config", "linkcluster.ini")
+ link_parse.read(link_parse_dir, encoding="utf-8")
+ link_list_dict = []
+ link_list = [4] # # 4 代表 Link 本源 cluster
+ for i in link_list:
+ tmp_dict = {}
+ link_index = "link_{}".format(i)
+ tmp_dict["link_dst_cluster"] = link_parse.get(link_index, "link_dst_cluster")
+ tmp_dict["link_dst_vsys"] = link_parse.get(link_index, "link_dst_vsys")
+ tmp_dict["url"] = link_parse.get(link_index, "url")
+ tmp_dict["username"] = link_parse.get(link_index, "username")
+ tmp_dict["passwd"] = link_parse.get(link_index, "passwd")
+ link_list_dict.append(copy.deepcopy(tmp_dict))
+ print(link_list_dict)
+ """ 传参查考
+ link_list_dict = [
+ {
+ "link_dst_cluster": "42.49-User4Link",
+ "link_dst_vsys": "Vsys2test",
+ "url": "http://192.168.42.49/#/login",
+ "username": "admin",
+ "passwd": "admin"
+ },
+ ]
+ """
+ ins = JsFiles(demo_fixture)
+ ins.chk_lnk_mod_case(data, link_list_dict=link_list_dict)
+
+ @pytest.mark.parametrize(
+ "data", [
+ {
+ "ID": "!?#@",
+ "Name": "????????????!!!!!!!!!!!!@@@@@@@@@@@@@@@@#############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%^^^^^^^^^^^^^^^^^^^^^^^^^^^^&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&******************************************???"
+ }
+ ],
+ ids=["查找特殊字符?@#!类型数据"]
+ )
+ @pytest.mark.special
+ def test_query_spec_chr(self, demo_fixture, data):
+ ins = JsFiles(demo_fixture)
+ ins.chk_query_spec_chr(data)
+
+ @pytest.mark.parametrize(
+ "data", [
+ {
+ "ids": "test_audit_log_all_operation",
+ "model": "modify",
+ "script": "test_js_1.js->test_css_1.css",
+ "script_type": "js->css",
+ "insert_position": "Before Page Load->不修改"
+ }
+ ],
+ )
+ @pytest.mark.audit
+ def test_audit_log_all_operation(self, demo_fixture, data):
+ ins = JsFiles(demo_fixture)
+ ins._audit_log_all_operation(data)
+
+ @pytest.mark.parametrize(
+ "data", [
+ {
+ "ids": "test_all_search_fields",
+ "model": "create",
+ "script": "test_js_1.js->",
+ "script_type": "js->",
+ "insert_position": "After Page Load->"
+ }
+ ],
+ )
+ def test_all_search_fields(self, demo_fixture, data):
+ ins = JsFiles(demo_fixture)
+ ins._all_search_fields(data)
+
+
+if __name__ == '__main__':
+ a = time.time()
+ print(111111111111)
+ pytest.main(['-sv', 'test_insert_scripts.py', '--check-max-tb=60000'])
+
+ b = time.time()
+ c = b - a
+ print("用时:::", c)
+ print(3333333333333)
+
+ """
+ # 在测试文件的当前路径执行如下命令执行测试用例:
+ pytest –cache-clear -v pytest_json.py --alluredir ./allure
+
+ # 执行如下命令生成测试报告(自动打开浏览器):
+ allure serve allure
+ """ \ No newline at end of file