请教一下,python3+unittest 进行接口测试,如何解决 case 之间数据的依赖关系呢?

如题,unittest中的case数据有依赖关系:
例如:case001新增了一名用户,返回值中会包含一个id号
在case002中删除case001中新增的用户,需要用到返回的id号,我的代码如下


class Shiyi_test(unittest.TestCase):

    def setUp(self):
        print("*" * 90)
        self.url = "http://www.baidu.com"
        self.headers = { 'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",}

    def tearDown(self):
        print("*" * 90)

    # 新增用户:
    def test_001_add(self):
        payload = {"Name": 119, "mobile": 119}
        r = requests.post(url=self.url, data=json.dumps(payload), headers=self.headers)
        print(r.json())
        return r.json()['id']

    # 删除用户
    def test_002_del(self):
        d = Shiyi_test.test_001_add()
        print(d)

if __name__ == '__main__':
    unittest.main()

问题出现在第二条case:
1.直接运行的话,会报错

TypeError: test_001_add() missing 1 required positional argument: 'self'

2.如果在d = Shiyi_test.test_001_add(self)加入self,可以获取id值,但是case002实际上把001新增用户又执行一遍,系统里面就会出现两个用户。
麻烦请教一下,这个错误在哪里呢?具体该怎么传递这一个数值呢?谢谢

PS:查数据库直接获取id号是一种方法。想问问,不查数据库,直接靠代码的方式怎么实现呢?

最后,祝大家节日快乐哈!!!

关闭