コード例 #1
0
class TestTag():

    def setup_class(self):
        # 初始化Tag
        self.tag = Tag()
        # 拿到token
        self.tag.get_token()

    def test_tag_list(self):
        # 获取新列表 进行校验
        r = self.tag.list()
        assert r.status_code == 200
        assert r.json()['errcode'] == 0

    #参数化
    @pytest.mark.parametrize("group_name,tag_names",[
        ["group_demo_leemandy2",[{'name': 'tag_demo_leemandy2'}]],
        ["group_demo_leemandy2",[{'name': 'tag_demo_leemandy2'}]],
        ["group_demo_leemandy2",[{'name': 'tag_demo_leemandy2'},{'name': 'tag_demo_leemandy3'}]],

    ])
    def test_tag_add(self,group_name,tag_names):
        #增加标签组
        r= self.tag.add(group_name, tag_names)
        assert r.status_code == 200

        #python列表表达式
        #校验 找taggroup下面有没有新建的groupname
        group=[group for group in r.json()['tag_group'] if group['group_name'] == group_name][0]
        #校验 找taggroup下tag下的name是不是我刚刚新建的
        tags=[{'name':tag['name']} for tag in group['tag'] if tag['name']]
        print(group)
        print(tags)
        assert group['group_name'] == group_name
        assert tags == tag_names


    #tagname超过31个字符回会报错
    def test_tag_fail(self):
        pass

    @pytest.mark.parametrize("",[
        #删除单个标签
        #删除多个标签
        #删除不存在的标签
        #删除标签组
    ]

    )
    def test_tag_delete(self,group_id,tag_id):
        self.tag.delete()
コード例 #2
0
ファイル: test_tag.py プロジェクト: yanli27/TestFramwork
class TestTag:
    def setup_class(self):
        ##资源初始化
        self.tag = Tag()
        self.tagid = ''
        self.group_id = 'etWtwhEQAAX_WVyJDmfF_Nx3nX2al-Og'

    def teardown_class(self):
        ##资源恢复
        pass

    #
    # @pytest.mark.parametrize("tag_id,tag_name",[
    #                          ['etWtwhEQAAUZvpV2eI58HtpYFSBR5nuQ','ukulele']
    #                          ,['etWtwhEQAAUZvpV2eI58HtpYFSBR5nuQ','ukulele-中文']
    #                          ,['etWtwhEQAAUZvpV2eI58HtpYFSBR5nuQ','ukulele-  ']])
    RESULT_LINK = 'https://github.com/yanli27/TestFramwork'

    @pytest.mark.parametrize("tag_id,tag_name",
                             yaml.load(open('tag_par.yaml', 'r'),
                                       Loader=yaml.FullLoader))
    @allure.story("测试tag的编辑")
    @allure.testcase(RESULT_LINK, '链接')
    @allure.title("测试tag的编辑")
    def test_tag_edit(self, tag_id, tag_name):
        tagname = tag_name + str(
            datetime.datetime.now().strftime("%Y%m%d%H%M"))
        print('tagname', tagname)
        group_name = 'uku group'
        id = tag_id
        # r=self.tag.list()
        with allure.step("更新tagname"):
            r = self.tag.update(id, tagname)
        with allure.step("列出更新后的tag列表"):
            r = self.tag.list()

        tags = [
            tag for group in r.json()['tag_group']
            if group['group_name'] == group_name for tag in group['tag']
            if tag['name'] == tagname
        ]
        # print('tags',r.json()['tag_group'])
        with allure.step("判断是否更新成功"):
            assert tags != []
            assert jsonpath(
                r.json(), f"$..[?(@.name=='{tagname}')]")[0]['name'] == tagname
        newTagname = str(jsonpath(r.json(), f"$..[?(@.name=='{tagname}')]"))
        allure.attach('插入txt:' + newTagname,
                      'tag',
                      attachment_type=allure.attachment_type.TEXT)
        driver.get()

    @allure.story("测试tag的新增")
    def test_add_tag(self):
        group_name = 'uku group'
        tag1 = 'test add tag' + str(
            datetime.datetime.now().strftime("%Y%m%d%H%M"))
        tag2 = 'test add tag 2' + str(
            datetime.datetime.now().strftime("%Y%m%d%H%M"))
        tag3 = 'test add tag 3' + str(
            datetime.datetime.now().strftime("%Y%m%d%H%M"))
        tag = [
            {
                "name": tag1
            },
            {
                "name": tag2
            },
            {
                "name": tag3
            },
        ]
        self.tag.add(groupname=group_name, tag=tag)

    @allure.story("列出所有tags")
    def test_list(self):
        self.tag.list()

    @allure.story("删除tag")
    def test_delete_tag(self):
        r = self.tag.list(self.group_id)
        tags = [
            tag for group in r.json()['tag_group'] for tag in group['tag']
            if tag['deleted'] is False
        ]
        print(tags)
        self.tagid = tags[0]['id']
        # print(r.json()['tag_group'][0]['tag'][0])
        self.tag.delete(self.tagid)

    @allure.story('删除group')
    def test_delete_group(self):
        self.tag.delete_group(["etWtwhEQAAsSp0ujrSGTqYKqyfvkoxXA"])

    @allure.story('删除tag')
    def test_delete_tag(self):
        self.tag.delete_tag(["etWtwhEQAAvZrYlpgRWxYz2EClCL2jDg"])
コード例 #3
0
ファイル: test_tag.py プロジェクト: zhousk/HogwartsLG4
class TestTag:
    update_index_class=0

    def setup_class(self):
        # todo:数据清理的过程,把测试数据清空或者还原

        # 还原数据库,如果可以还原数据库,那么测试用例中是可以使用一些变化的tagid。否则不要硬编码这些tagid,一旦数据被清空,tagid就会失效。
        # 使用接口去清理数据
        # 使用接口去构建测试数据

        self.tag = Tag()
        self.tag.get_token()
        self.tag.clear_all()
        self.update_index = 0
        print("update_index")
        print(self.update_index)

    def test_tag_list(self):
        # todo: 完善功能测试
        r = self.tag.list()
        assert r.status_code == 200
        assert r.json()['errcode'] == 0

    @pytest.mark.parametrize("group_name, tag_names", [
        ["group_demo_1201", [{'name': 'tag_demo_1201'}]],
        ["group_demo_1202", [{'name': 'tag_demo_1202'}, {'name': 'tag_demo_1203'}]],
    ])
    def test_tag_add(self, group_name, tag_names):
        r = self.tag.add(group_name, tag_names)
        assert r.status_code == 200
        # assert r.json()['errcode'] == 0

        r = self.tag.list()
        assert r.status_code == 200
        assert r.json()['errcode'] == 0

        group = [group for group in r.json()['tag_group'] if group['group_name'] == group_name][0]
        tags = [{'name': tag['name']} for tag in group['tag']]
        print(group)
        print(tags)
        assert group['group_name'] == group_name
        assert tags == tag_names

    def test_tag_add_fail(self):
        pass

    @pytest.mark.parametrize("group_name, tag_names, need_group_id", [
        # 删除有效的单个标签
        ['group_delete_demo', [{'name': "tag_delete_demo_1"}], False],
        # 删除多个标签
        ['group_delete_demo', [{'name': "tag_delete_demo_2", 'name': "tag_delete_demo_3"}], False],
        # 删除整个组
        ['group_delete_demo', [{'name': 'tag_delete_demo_4'}], True],
        # 删除标签组,名字或者id
    ])
    def test_tag_delete(self, group_name, tag_names, need_group_id):
        self.tag.add(group_name, tag_names)
        r = self.tag.list()
        group = [group for group in r.json()['tag_group'] if group['group_name'] == group_name][0]
        tag_ids = [tag['id'] for tag in group['tag']]
        if need_group_id:
            group_id = group['group_id']
            tag_ids = None
        else:
            group_id = None

        self.tag.delete(group_id, tag_ids)
        r = self.tag.list()
        groups = [group for group in r.json()['tag_group'] if group['group_name'] == group_name]
        assert groups == []

    @pytest.mark.parametrize("name", [
        # 普通改名 加长
        'tag_test_update_name_1',
        # 缩短
        'tag_1',
        # 不变
        'tag_test_update_name',
        # 重名
        # 组名重名
        # 特殊字符

    ])
    def test_update_name(self, name):
        self.update_index += 1
        # doine: id一样 不要用实例变量就可以
        print(f"update_index={self.update_index}")
        tag_name = 'tag_test_update_name_' + str(datetime.now())[-5:]
        tag = [{'name': tag_name}]
        self.tag.add("group_test_update_name", tag)
        r = self.tag.list()
        tag_id = jsonpath(r.json(), f'$..[?(@.name=="{tag_name}")].id')[0]
        r = self.tag.update(tag_id, name)
        assert r.json()['errcode'] == 0
        r = self.tag.list()
        assert len(jsonpath(r.json(), f'$..[?(@.name=="{name}")].id')) == 1

    @pytest.mark.parametrize("order_id", [
        # [5,4,3,2,1]  标签/标签组的次序值。order值大的排序靠前。有效的值范围是[0, 2^32)

    ])
    def test_update_order(self, order_id):
        pass

    def test_clear_all(self):
        r = self.tag.clear_all()
        assert len(r.json()['tag_group']) == 0

    def setup(self):
        self.update_index += 1

    @pytest.mark.parametrize('a', [1, 2, 3, 4, 5])
    def test_demo(self, a):
        self.update_index += 1
        TestTag.update_index_class+=1
        print(f"update_index={self.update_index}")
        print(f"update_index_class={self.update_index_class}")