python调用接口返回结果、怎么一并返回以前调用的结果_python笔记39-unittest框架如何将上个接口的返回结果给下个接口使用(面试必问)...

前言

面试必问:如何将上个接口的返回结果,作为下个接口的请求入参?使用unittest框架写用例时,如何将用例a的结果,给用例b使用。

unittest框架的每个用例都是独立的,测试数据共享的话,需设置全局变量,可以使用globals()函数来解决

globals()函数

globals() 函数会以字典类型返回当前位置的全部全局变量。

print(globals())

# 用法

globals()["a"] = "用例a的返回结果"

# 用例b引用

b = globals()["a"]

print(b)

unittest框架用例

使globals()函数实现用例之间的数据共享,比如用例a返回的结果写到globals()["a"]中,用例b调用globals()["a"]的值

import unittest

import requests

# 上海-悠悠 QQ交流群:717225969

class TestA(unittest.TestCase):

def setUp(self):

self.s = requests.session()

def test_a(self):

'''用例a'''

result_a = "aaaaaa" # 用例a的返回值

# 返回值先给全部办理,存到字典对应key

globals()["a"] = result_a

self.assertEqual(result_a, "aaaaaa")

def test_b(self):

'''用例b'''

b = globals()["a"] # 引用用例a的返回值

print("用例b引用用例a的返回值:%s"%b)

result_b = b+"111"

self.assertEqual(result_b, "aaaaaa111")

if __name__ == '__main__':

unittest.main()

运行结果:

E:\python36\python.exe D:/jiekou9/debug/yilai.py

..

----------------------------------------------------------------------

Ran 2 tests in 0.000s

OK

用例b引用用例a的返回值:aaaaaa

但是这样会有个隐患:用例b是用来用例a的,所以用例有先后顺序,用例a先执行,用例b后执行

globals()优化

当用例c的的请求参数依赖用例a和用例b时,使用太多的globals()会不太好关联,可以把globals()函数放到setUp前置里面,如下:

用例c需要依赖a的返回值result_a和用例b的返回值result_b

import unittest

import requests

# 上海-悠悠 QQ交流群:717225969

class TestA(unittest.TestCase):

'''上海悠悠:QQ群:779429633'''

def setUp(self):

self.s = requests.session()

self.g = globals()

def test_a(self):

'''用例a'''

result_a = "aaaaaa" # 用例a的返回值

# 返回值先给全部办理,存到字典对应key

self.g["a"] = result_a

self.assertEqual(result_a, "aaaaaa")

def test_b(self):

'''用例b'''

b = self.g["a"] # 引用用例a的返回值

print("用例b引用用例a的返回值:%s"%b)

result_b = b+"111"

self.g["b"] = result_b

self.assertEqual(result_b, "aaaaaa111")

def test_c(self):

'''用例c'''

print("用例c依赖用例a和用例b")

c_a = self.g["a"]

c_b = self.g["b"]

print("用例c的请求入参:%s" % c_a)

print("用例c的请求入参:%s" % c_b)

if __name__ == '__main__':

unittest.main()

运行结果

.用例b引用用例a的返回值:aaaaaa

.用例c依赖用例a和用例b

用例c的请求入参:aaaaaa

用例c的请求入参:aaaaaa111

.

----------------------------------------------------------------------

Ran 3 tests in 5.001s

OK

python交流QQ群:779429633

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值