测试人社区

求助:接口自动直播2,有一出代码没有理解

    @pytest.mark.parametrize("group_name,tag_name,need_group_id",[
        # 删除有效的单个标签
        ["gruop_delete_demo1",[{"name": "tag_delete_demo1"}],False],

        # 删除有效的多个标签

        ["gruop_delete_demo2",[{"name": "tag_delete_demo2","name": "tag_delete_demo3"}],False],
        ["gruop_delete_demo3", [{"name": "tag_delete_demo44"}],True],
        ])
def test_delete_tag(self,group_name,tag_name,need_group_id):
        #先去创建一个标签
        #group_name="group_demo_0202232"
        #self.tag.add_tag(group_name,[{"name": "tag_name02027776"},{"name": "tag_name0202777"},{"name": "tag_name02027"}])
        self.tag.add_tag(group_name,tag_name)

        r=self.tag.list()
        #取[group_name],取tag
        group=[group for group in r.json()["tag_group"] if group["group_name"]== group_name][0]
        #拿到所有group_id
        #group=[group["group_id"] for group in r.json()["tag_group"] if group["group_name"]== group_name][0]
        #tag=[tag for tag in group["tag"]]
        #拿到所有的tag_id
        tag=[tag["id"] for tag in group["tag"]]
        #删除单个标签
        #解决"errmsg": "Warning: wrong json format. invalid tagid, hint:
        #如果是
        if need_group_id :
           group_id = group["group_id"]
           tag=None
        else:
            group_id=None
        self.tag.delete(group_id,tag)
        print("***********************")
        r=self.tag.list()
        groups = [group for group in r.json()["tag_group"] if group["group_name"] == group_name]
        assert  groups==[]

整个代码中:参数化中的need_group_id和下列代码


        if need_group_id :
           group_id = group["group_id"]
           tag=None
        else:
            group_id=None
        self.tag.delete(group_id,tag)

当need_group_id为false的时候,groupid=none,tag=正常取所有值,企业微信页面有个逻辑就是tag,删除时,不能全部删除,这个是属于走的前端控制,跟后端没有关系么?
因为这个参数[“gruop_delete_demo2”,[{“name”: “tag_delete_demo2”,“name”: “tag_delete_demo3”}],False],这样的标签理论是删除不了了,看下图,将所有标签删除后,点击确定


,但是程序就删除了

这个就是接口测试优势;前端限制了部分规则,但是通过接口测试就可以打破这些规则

好的