# -*- 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.http_signatures import HTTP_Signatures from common.ui_common.objects.objects_public_operations import download_files from config.workpath import workdir data = ReadData() class Test_http_signatures: @pytest.mark.parametrize("data", data.read_data_object("http_signatures.json"),ids=data.generate_id) # http_signatures 增删改查 def test_http_signatures(self, demo_fixture, data): http_signatures = HTTP_Signatures(demo_fixture) http_signatures.HTTP_Signatures_case(data) @pytest.mark.parametrize("data", [ { "ids": "用例8、10、11,五层协议、删除引用数据、查看引用计数", "Name": "test--1", "Create": { "model": "0", "type": "new_object", "item": {"User-Agent": "*abcd"} }, "range": "", "Subtype": "not_delete", "Search_type": "ID" }, { "ids": "用例8、10、11,五层协议、删除引用数据、查看引用计数", "Name": "test--2", "Create": { "model": "1", "type": "quote", "sub_name": "test--1" }, "range": "", "Subtype": "not_delete", "Search_type": "ID" }, { "ids": "用例8、10、11,五层协议、删除引用数据、查看引用计数", "Name": "test--3", "Create": { "model": "1", "type": "quote", "sub_name": "test--2" }, "range": "", "Subtype": "not_delete", "Search_type": "ID" }, { "ids": "用例8、10、11,五层协议、删除引用数据、查看引用计数", "Name": "test--", "Create": { "model": "1", "type": "quote", "sub_name": "test--3" }, "range": "", "Subtype": "Five_layer", "Search_type": "Name" } ]) def test_http_Five_layer_signatures(self, demo_fixture, data): http_signatures = HTTP_Signatures(demo_fixture) http_signatures.HTTP_Signatures_case(data) @pytest.mark.parametrize("data",[ { "ids": "用例22-1、HTTP Signatures的统计页面查看", "Name": "test-1", "Create": { "model": "0", "type": "new_object", "item": {"User-Agent": "*abcd", "Set-Cookie": "abcd*", "Content-Type": "abcd", "Cookie": "$abcd"} }, "range": "", "Subtype": "", "Search_type": "ID" },{ "ids": "用例22-2:HTTP_Signatures_Group的统计页面查看", "Name": "test-http-signatures group", "Create": { "model": "1", "type": "new_object", "item": {"User-Agent": "abcd", "Set-Cookie": "abcd*"} }, "range": "", "Createmodel": "1", "Createtype": "HTTP_Signatures_Group", "Subtype": "", "Search_type": "ID" }]) #Statistics页面弹窗校验 def test_View_statistics_case(self,demo_fixture,data): http_signatures = HTTP_Signatures(demo_fixture) http_signatures._View_statistics_case(data) @pytest.mark.parametrize("data", [ { "ids": "用例23-1、多Object的重复Item校验", "Name": "duplicate--", "Create":{ "model": "0", "type": "new_object", "item": {"User-Agent": "*moreobject"} }, "range": "", "Subtype":"", "repetition_type": "0", "Search_type": "Name" },{ "ids": "用例23-1、Object内重复Item校验", "Name": "duplicate--", "Create": { "model": "0", "type": "new_object", "item": {"User-Agent": "*moreobject"} }, "range": "", "Subtype": "", "repetition_type": "1", "Search_type": "Name" } ]) def test_Duplicate_check(self, demo_fixture, data): http_signatures = HTTP_Signatures(demo_fixture) http_signatures._repetition_item_case(data) # 列设置测试 def test_http_signatures_Column_settings_case(self, demo_fixture): http_signatures = HTTP_Signatures(demo_fixture) http_signatures._Column_settings_case() # 用例13,导出文件测试 @pytest.mark.parametrize("data", [ { "ids": "用例8、10、11,五层协议、删除引用数据、查看引用计数", "Name": "test--1", "Create": { "model": "0", "type": "new_object", "item": {"User-Agent": "*abcd"} }, "range": "", "Subtype": "", "Search_type": "ID" }]) def test_export_files_case(self, data): driver = download_files() http_signatures = HTTP_Signatures(driver) http_signatures._export_files_case(data) # 用例14,翻页测试 @pytest.mark.parametrize("data", [ { "turn_mode": 1, "destination_page": "0" }, { "turn_mode": 2, "destination_page": "0" }, { "turn_mode": 3, "destination_page": "0" }, { "turn_mode": 4, "destination_page": "0" } ]) def test_page_turn_case(self, demo_fixture, data): http_signatures = HTTP_Signatures(demo_fixture) http_signatures._page_turn_case(data) # 用例15,Watch按钮 # def test_watch_button_case(self,demo_fixture): # http_signatures = HTTP_Signatures(demo_fixture) # http_signatures.watch_button_case() # 用例17、审计日志 @pytest.mark.parametrize("data", [ { "ids": "用例17,审计日志", "Name": "test--1", "Create": { "model": "0", "type": "new_object", "item": {"User-Agent": "*abcd"} }, "item_modify": {"type": "modify", "modify_data": {"Cookie": "abcd"}}, "range": "", "Subtype": "", "Search_type": "ID" }]) def test_audit_log_case(self,demo_fixture,data): http_signatures = HTTP_Signatures(demo_fixture) http_signatures.audit_log_case(data) # 用例18、对象页面item添加框Total的数量 @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): http_signatures = HTTP_Signatures(demo_fixture) http_signatures._clear_counter(data) @pytest.mark.parametrize("data", [ { "ids": "用例1、7、HTTP Signature的增删改查", "Name": "test-1", "Create":{ "model": "0", "type": "new_object", "item": {"User-Agent": "*abcd","Set-Cookie": "abcd*","Content-Type": "abcd","Cookie": "$abcd"} }, "range": "", "Subtype":"", "Search_type": "ID&Details" },{ "ids": "用例1、7、HTTP Signature的增删改查", "Name": "test-1", "Create":{ "model": "0", "type": "new_object", "item": {"User-Agent": "*abcd","Set-Cookie": "abcd*","Content-Type": "abcd","Cookie": "$abcd"} }, "range": "", "Subtype":"", "Search_type": "Name&Description" },{ "ids": "用例25-1、Details部分值模糊搜索", "Name": "random", "Create": { "model": "0", "type": "new_object", "item": {"Content-Type": "fuzzy.search"} }, "range": "", "Subtype": "", "Search_type": "fuzzy->Details&Name" },{ "ids": "用例25-1、Details部分值模糊搜索", "Name": "random", "Create": { "model": "0", "type": "new_object", "item": {"Content-Type": "fuzzy.search"} }, "range": "", "Subtype": "", "Search_type": "fuzzy->Details&Description" } ]) def test_verify_search(self, demo_fixture, data): http_signatures = HTTP_Signatures(demo_fixture) http_signatures.verify_search(data) @pytest.mark.parametrize("data", [ { "ids": "用例33、exclude打开未添加校验", "Name": "test-1", "Subtype": "0", }, { "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": {"User-Agent": "abcd", "Set-Cookie": "abcd*"} }, "Subtype": "3", "Search_type": "ID" } ]) def test_group_include(self, demo_fixture, data): http_signatures = HTTP_Signatures(demo_fixture) http_signatures.group_object_include(data) @pytest.mark.parametrize("data", [ { "ids": "用例1、7、HTTP Signature的增删改查", "Name": "test-1", "Create":{ "model": "0", "type": "new_object", "item": {"User-Agent": "*abcd","Set-Cookie": "abcd*","Cookie": "$abcd"} }, "range": "", "Subtype":"", "Search_type": "ID" },{ "ids": "用例3:HTTP_Signatures_Group的增删改查", "Name": "test-http-signatures group", "Create":{ "model": "1", "type": "new_object", "item":{"User-Agent": "abcd"} }, "range": "", "Createtype": "HTTP_Signatures_Group", "Subtype":"", "Search_type": "ID" }]) # 用例13、导出文件 def test_item_search(self, demo_fixture, data): http_signatures = HTTP_Signatures(demo_fixture) http_signatures.mainPage_item_search(data) @pytest.mark.parametrize("data", [{ "ids": "用例1、7、HTTP Signature的增删改查", "Name": "vsys_different-test", "Create": { "model": "0", "type": "new_object", "item": {"User-Agent": "*abcd"} }, "range": "", "Subtype": "", "Search_type": "Name" }]) def test_different_vsys_check(self, demo_fixture, data): http_signatures = HTTP_Signatures(demo_fixture) http_signatures.different_vsys_check(data) @pytest.mark.parametrize("data", [ { "ids": "用例3:HTTP_Signatures_Group的增删改查", "Name": "test-http-signatures group", "Create": { "model": "1", "type": "new_object", "item": {"User-Agent": "abcd"} }, "Createtype": "HTTP_Signatures_Group", "Subtype": "", "Search_type": "ID" } ]) def test_sub_objects_drawer_search(self, demo_fixture, data): http_signatures = HTTP_Signatures(demo_fixture) http_signatures._sub_objects_drawer_search(data) @pytest.mark.parametrize("data", [ { "ids": "用例22、object创建修改删除校验system下审计日志", "Name": "test", "Create": { "model": "0", "type": "new_object", "item": {"Cookie": "$abcd"}, "files_type": "true_files", "files_name": "http_signature_true.txt" }, "item_modify": {"type": "modify", "modify_data": {"Cookie": "abcd"}}, "range": "", "Subtype": "", "Search_type": "ID" } ]) def test_audit_log_all_operation(self,data): driver = download_files() http_signatures = HTTP_Signatures(driver) http_signatures.audit_log_all_operation(data) @pytest.mark.parametrize("data", [{ "ids": "用例14、创建Object的审计日志查看", "Name": "test_policy_quote", "Create": { "model": "0", "type": "new_object", "item": {"User-Agent": "*abcd"} }, "range": "", "Subtype": "", "Search_type": "Name" }]) def test_policy_quote_role(self, demo_fixture, data): http_signatures = HTTP_Signatures(demo_fixture) http_signatures.policy_reference_count_check(data) if __name__ == '__main__': # # print(data.read_data_object("moible_identities.json")) # a = time.time() # print(111111111111) pytest.main(['-sv', 'test_http_signatures.py', '--check-max-tb=60000'])