# -*- coding: UTF-8 -*- import configparser import copy import os import time import uuid import pytest from selenium import webdriver from common.driver_common.mywebdriver import MyWebDriver from common.read_data.read_data import ReadData from cases.conftest import demo_fixture from common.ui_common.objects.keywords import Keywords from common.ui_common.objects.objects_public_operations import download_files from config.workpath import workdir data = ReadData() class Test_Keywords: @pytest.mark.parametrize("data", data.read_data_object("keywords.json"), ids=data.generate_id) #ip address 增删改查 def test_Keywords_case(self, demo_fixture, data): keywords = Keywords(demo_fixture) keywords.Keywords_case(data) @pytest.mark.parametrize("data",[ { "ids": "第一层test--1", "Name": "test--1", "Create":{ "model": "0", "type":"new_object", "item": ["abcd$"] }, "range": "", "Createtype": "", "Subtype": "not_delete", "Search_type": "Name" }, { "ids": "第二层test--2", "Name": "test--2", "Create": { "model": "1", "type": "quote", "sub_name": "test--1" }, "range": "", "Createtype": "", "Subtype": "not_delete", "Search_type": "Name" }, { "ids": "第三层test--3", "Name": "test--3", "Create": { "model": "1", "type": "quote", "sub_name": "test--2" }, "range": "", "Createtype": "", "Subtype": "not_delete", "Search_type": "Name" }, { "ids": "第四层test--4", "Name": "test--", "Create": { "model": "1", "type": "quote", "sub_name": "test--3" }, "range": "", "Createtype": "", "Subtype": "delete_5_layer", "Search_type": "Name" } ]) #Keywords 嵌套五层 def test_Keywords_Five_layer_Case(self, demo_fixture, data): keywords = Keywords(demo_fixture) keywords.Keywords_Five_layer_Case(data) @pytest.mark.parametrize("data", [ { "ids": "用例 25-1 Object统计页面查看", "Name": "test--1", "Create": { "model": "0", "type": "new_object", "item": ["abcd$"] }, "range": "", "Createtype": "", "Subtype": "", "Search_type": "Name" }, { "ids": "用例25-2Object_Group组统计页面查看", "Name": "test-2", "Create":{ "model": "1", "type":"new_object", "item":["abcd$", "^abcd$", "abcd", "^abcd"] }, "range": "", "Createtype": "", "Subtype":"", "Search_type": "Name" } ]) def test_View_statistics_case(self,demo_fixture,data): keywords = Keywords(demo_fixture) keywords._View_statistics_case(data) @pytest.mark.parametrize("data", [ { "ids": "用例30-1,多个Object重复item校验", "Name": "duplicate--test", "Create": { "model": "0", "type": "new_object", "item": ["moreobject$"] }, "range": "", "Createtype": "", "repetition_type": "0", "Subtype": "", "Search_type": "Name" },{ "ids": "用例30-1,Object内重复item校验", "Name": "duplicate--test", "Create": { "model": "0", "type": "new_object", "item": ["moreobject$"] }, "range": "", "Createtype": "", "repetition_type": "1", "Subtype": "", "Search_type": "Name" } ]) def test_Duplicate_check(self,demo_fixture,data): keywords = Keywords(demo_fixture) keywords._repetition_item_case(data) def test_Keywords_Column_settings_case(self, demo_fixture): # Keywords列设置 keywords = Keywords(demo_fixture) keywords.Keywords_Column_settings_case() # def test_Keywords_watch_list_case(self, demo_fixture): # watch列表 # keywords = Keywords(demo_fixture) # keywords.watch_list_case() @pytest.mark.parametrize("data",[ { "ids": "# 直接跳转至对应页面,如destination_page为0则进行随机跳转", "turn_mode": 1, "destination_page": "0" },{ "ids": "# 使用前一页或后一页按钮进行翻页,如destination_page为0则进行随机跳转", "turn_mode": 2, "destination_page": "0" },{ "ids": "# 使用Go to页码数进行翻页,如destination_page为0则进行随机跳转", "turn_mode": 3, "destination_page": "0" },{ "ids": "# 使用快速翻页按钮进行翻页,如destination_page为0则进行随机跳转", "turn_mode": 4, "destination_page": "0" } ]) # 翻页 def test_trun_page_case(self,demo_fixture,data): keywords = Keywords(demo_fixture) keywords.Keywords_trun_page_case(data) @pytest.mark.parametrize("data", [{ "ids": "用例1、3、6:Keywords的增删改查", "Name": "test-1", "Create":{ "model":"0", "type":"new_object", "item": ["abcd$", "^abcd", "abcd", "^abcd$"] }, "range": "", "Createtype": "", "item_modify": {"type": "add", "add_data": ["^123123$"]}, "Subtype": "", "Search_type": "Name" }]) # 编辑记录 def test_audit_logs_Case(self,demo_fixture,data): keywords = Keywords(demo_fixture) keywords.audit_logs_Case(data) @pytest.mark.parametrize("data", [ { "ids": "Name&Description组合查询验证", "Name": "test-1", "Create":{ "model": "0", "type":"new_object", "item":["abcd"] }, "range": "", "Createtype": "", "Subtype":"", "Search_type": "Name&Description" }, { "ids": "ID&Details组合查询验证", "Name": "test-1", "Create":{ "model": "0", "type":"new_object", "item":["abcd"] }, "range": "", "Createtype": "", "Subtype":"", "Search_type": "ID&Details" },{ "ids": "用例37-1:Details的模糊搜索", "Name": "random", "Create": { "model": "0", "type": "new_object", "item": ["fuzzy.search"] }, "range": "", "Createtype": "", "Subtype": "", "Search_type": "fuzzy->Details&Name" },{ "ids": "用例37-1:Details的模糊搜索", "Name": "random", "Create": { "model": "0", "type": "new_object", "item": ["fuzzy.search"] }, "range": "", "Createtype": "", "Subtype": "", "Search_type": "fuzzy->Details&Description" } ]) def test_verify_search(self, demo_fixture, data): keywords = Keywords(demo_fixture) keywords.verify_search(data) @pytest.mark.parametrize("data", [ { "ids": "用例33、exclude打开未添加校验", "Name": "test-1", "Create": { "model": "1", "type": "new_object", "item": ["search$"] }, "Subtype": "0", "Search_type": "Name" }, { "ids": "用例33、exclude添加,include未添加校验", "Name": "test-1", "Subtype": "1", }, { "ids": "用例33、exclude,include均未添加校验", "Name": "test-1", "Subtype": "2", },{ "ids": "用例33、exclude,include均未添加校验", "Name": "test-1", "Create": { "model": "1", "type": "new_object", "item": ["search$"] }, "Subtype": "3", "Search_type": "Name" } ]) def test_group_include(self, demo_fixture, data): keywords = Keywords(demo_fixture) keywords.group_object_include(data) @pytest.mark.parametrize("data", [ { "ids": "用例1:Keywords的增删改查", "Name": "test-1", "Create":{ "model": "0", "type":"new_object", "item":["search", "item$", "^three$"] }, "range": "", "Createtype": "", "Subtype":"", "Search_type": "Name" }, { "ids": "用例2、4Keywords_Group的增删改查", "Name": "test-1", "Create":{ "model": "1", "type":"new_object", "item":["search$", "^item", "^three$"] }, "range": "", "Createtype": "", "Subtype":"", "Search_type": "Name" }]) # 用例13、导出文件 def test_item_search(self, demo_fixture, data): keywords = Keywords(demo_fixture) keywords.mainPage_item_search(data) @pytest.mark.parametrize("data", data.read_data_object(r"Accounts\\clear_counter.json"), ids=data.generate_id) def test_clear_counter(self, demo_fixture, data): keywords = Keywords(demo_fixture) keywords._clear_counter(data) @pytest.mark.parametrize("data", [{ "ids": "用例1:Keywords的增删改查", "Name": "vsys_different-test", "Create":{ "model": "0", "type":"new_object", "item":["search"] }, "range": "", "Createtype": "", "Subtype":"", "Search_type": "Name" }]) def test_different_vsys_check(self, demo_fixture, data): keywords = Keywords(demo_fixture) keywords.different_vsys_check(data) @pytest.mark.parametrize("data", [ { "ids": "用例2、4Keywords_Group的增删改查", "Name": "test-1", "Create":{ "model": "1", "type":"new_object", "item":["search$", "^item", "^three$"] }, "range": "", "Createtype": "", "Subtype":"", "Search_type": "Name" } ]) def test_sub_objects_drawer_search(self, demo_fixture, data): keywords = Keywords(demo_fixture) keywords._sub_objects_drawer_search(data) @pytest.mark.parametrize("data", [ { "ids": "用例13:导入文件操作", "Name": "test-1", "Create": { "model": "0", "type": "new_object", "item": ["111", "222"], "files_type": "true_files", "files_name": "keywords_True导入文件.txt" }, "item_modify": {"type": "modify", "modify_data": "333"}, "range": "", "Createtype": "", "Subtype": "", "Search_type": "Name" } ]) def test_audit_log_all_operation(self,data): driver = download_files() keywords = Keywords(driver) keywords.audit_log_all_operation(data) @pytest.mark.parametrize("data", [{ "ids": "用例14、创建Object的审计日志查看", "Name": "test_policy_quote", "Create":{ "model": "0", "type":"new_object", "item":["search"] }, "range": "", "Createtype": "", "Subtype":"", "Search_type": "Name" }]) def test_policy_quote_role(self, demo_fixture, data): keywords = Keywords(demo_fixture) keywords.policy_reference_count_check(data) # @pytest.mark.parametrize("data",[ # { # "ids": "1、仅可查看本vsys下的数据,其他非vsys数据不可见", # "Name": "test-1", # "item": ["12312312321*", "$12312312321"], # "Createmodel": "0", # "Createtype": "IMSI", # "Subtype": "", # "Search_type": "Name", # "vsys_opearte": {"step1": "Tvsys1->create", "step2": "Tvsys3->search"} # }, # { # "ids": "新建/修改Keywords Group,只能引用本Vsys内的Keywords", # "Name": "Tvsys引用测试", # "item": ["12312312321*", "$12312312321"], # "Createmodel": "0", # "Createtype": "IMSI", # "Subtype": "", # "Search_type": "Name", # "vsys_opearte": {"step1": "Tvsys1->create", "step2": "Tvsys3->quote"}, # "subName": "" # # }, { # "ids": "新建/修改Keywords Group,只能引用本Vsys内的Keywords", # "Name": "Tvsys引用测试", # "item": ["12312312321*", "$12312312321"], # "Createmodel": "0", # "Createtype": "IMSI", # "Subtype": "", # "Search_type": "Name", # "vsys_opearte": {"step1": "Tvsys1->create", "step2": "Tvsys3->quote"}, # "subName": "" # # }, # { # "ids": "Supervisor Mode 监督模式打开,Management Vsys对下级Vsys内数据仅可以进行查询操作,无法进行修改和删除操作", # "Name": "Mvsys对其下Tvsys只有查看权限", # "item": ["12312312321*", "$12312312321"], # "Createmodel": "0", # "Createtype": "Phone_Number", # "Subtype": "", # "Search_type": "Name", # "vsys_opearte": {"step1": "super_Tvsys1->create", "step2": "super_Mvsys3->search"}, # "subName": "" # },{ # "ids": "新建/修改IMSI/Phone Number Group,只能引用本Vsys内的IMSI/Phone Number", # "Name": "Mvsys对其下Tvsys只有查看权限", # "item": ["12312312321*", "$12312312321"], # "Createmodel": "0", # "Createtype": "IMEI", # "Subtype": "", # "Search_type": "Name", # "vsys_opearte": {"step1": "super_Tvsys1->create", "step2": "super_Mvsys3->search"}, # "subName": "" # },{ # "ids": "Mvsys对其下Tvsys只有查看权限", # "Name": "Mvsys对其下Tvsys只有查看权限", # "item": ["12312312321*", "$12312312321"], # "Createmodel": "0", # "Createtype": "IMEI", # "Subtype": "", # "Search_type": "Name", # "vsys_opearte": {"step1": "super_Tvsys1->create", "step2": "super_Tvsys1->security_quote"}, # "delete_mode" : "", # "subName": "" # },{ # "ids": "Mvsys对其下Tvsys只有查看权限", # "Name": "Mvsys对其下Tvsys只有查看权限", # "item": ["12312312321*", "$12312312321"], # "Createmodel": "0", # "Createtype": "IMEI", # "Subtype": "", # "Search_type": "Name", # "vsys_opearte": {"step1": "super_Tvsys1->create", "step2": "super_Tvsys1->intercept_quote"}, # "delete_mode" : "", # "subName": "" # },{ # "ids": "Mvsys对其下Tvsys只有查看权限", # "Name": "Mvsys对其下Tvsys只有查看权限", # "item": ["12312312321*", "$12312312321"], # "Createmodel": "0", # "Createtype": "IMEI", # "Subtype": "", # "Search_type": "Name", # "vsys_opearte": {"step1": "super_Tvsys1->create", "step2": "super_Tvsys3->intercept_quote"}, # "delete_mode" : "", # "subName": "" # },{ # "ids": "Mvsys对其下Tvsys只有查看权限", # "Name": "Mvsys对其下Tvsys只有查看权限", # "item": ["12312312321*", "$12312312321"], # "Createmodel": "0", # "Createtype": "IMEI", # "Subtype": "", # "Search_type": "Name", # "vsys_opearte": {"step1": "super_Tvsys1->create", "step2": "super_Mvsys3->intercept_quote"}, # "delete_mode" : "", # "subName": "" # } # ]) # def test_Keywords_vsys_case(self,demo_fixture,data): # keywords = Keywords(demo_fixture) # keywords.Keywords_vsys_case(data) if __name__ == '__main__': # # print(data.read_data_object("moible_identities.json")) # a = time.time() # print(111111111111) pytest.main(['-sv', 'test_keywords.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 """