@classmethod的setUpclass(cls) 接口测试token处理用法详解

第1步:在装饰器@classmethod setUpClass 里面发送post登录请求。并获取token。

第2步:将token设置全局变量,从接口返回的数据中获取token赋值给全局变量。

第3步:在接口中使用全局变量:
3.1再次声明,表示这里使用的是全局变量,不是局部变量。
3.2在接口中使用全局变量

	# 首次方法前执行,只执行1次
	@classmethod
    def setUpClass(cls):
        url = 'http://www.xxx.com/'
        #下面用json是因为请求是以json形式发送的数据。
        json = {"loginName": "youraccount", "password": "yourpassword"}
        headers = {"Content-Type": "application/json;charset=UTF-8"}
        response = requests.post(url=url, json=json, headers=headers).json()
        #将token设置全局变量,方便后面需要使用。
        global token
        #从接口返回的数据中获取token赋值给全局变量。
        token = response['token']

    # 方法后执行,只执行1次
    @classmethod
    def tearDownClass(cls):
        pass

    # 每次方法前执行
    def setUp(self):
        self.run = Runmain()
        # pass

    # 每次方法后执行
    def tearDown(self):
        pass
    def test_05(self):
    	#再次声明,表示这里使用的是全局变量,不是局部变量。
        global token
        url = 'http://www.xxx.com/product/'
        json = {"pro_status": "2", "order_by": "update_time",
                "desc": "true", "page_size": "10", "page_now": 1}
        #现在下面的token是全局变量
        headers = {"Content-Type": "application/json;charset=UTF-8",
                   "Authorization": "Bearer " + token}
        res=requests.post(url=url, json=json, headers=headers).json()
        try:
            msg51 = '断言下架产品页码大于0断言失败'
            self.assertGreater(res['pageCount'], 0, msg51)
        except:
            print(msg51)
            raise

你可能感兴趣的:(python)