运行Python脚本报错 TypeError: ‘module‘ object is not callable 的解决办法,亲测有效

错误代码如下

import requests

import business.take_saas_token as take_saas_token

 

#测试用例2:添加心率设备

 

def test_HrGroupAddHeartRateDevice():

 

    query_params = {

        "venue_id": 3189,

        "sn": 27470993,

        "in_venue_no": 1

 

    }

 

    r = requests.post(url=base_url + "/hrsensor/Index/addHrSensor", params=query_params, cookies=take_saas_token())

    print(r.status_code)

 

    rst = r.json()['rst']

    assert r.status_code == 200

    assert rst == 0

 

    if rst == 0:

        print('测试用例2 测试结果:添加心率设备成功,测试通过')

    else:

        print('测试用例2 测试结果:添加心率设备失败,测试未通过')

 

报错信息 :  r = requests.post(url=base_url + "/hrsensor/Index/addHrSensor", params=query_params, cookies=take_saas_token())

E       TypeError: 'module' object is not callable

报错翻译:“模块”对象不可调用

解决思路:

通过报错,我们知道了问题出在模块上,我们在这里只用了2个模块1个是request,1个就是take_saas_token。通过排除法分析,request没有问题,那问题就出在take_saas_token。通过查资料得知在使用Python导入模块的方法import module 导入的东西使用时需加上模块名的限定,也就是在take_saas_token之前加入 take_saas_token这个模块名,即:

cookies=take_saas_token.take_saas_token())


正确的代码:

import requests

import business.take_saas_token as take_saas_token

 

#测试用例2:添加心率设备

 

def test_HrGroupAddHeartRateDevice():

 

    query_params = {

        "venue_id": 3189,

        "sn": 27470993,

        "in_venue_no": 1

 

    }

 

    r = requests.post(url=base_url + "/hrsensor/Index/addHrSensor", params=query_params, cookies=take_saas_token.take_saas_token())

    print(r.status_code)

 

    rst = r.json()['rst']

    assert r.status_code == 200

    assert rst == 0

 

    if rst == 0:

        print('测试用例2 测试结果:添加心率设备成功,测试通过')

    else:

        print('测试用例2 测试结果:添加心率设备失败,测试未通过')

 

修改改后运行通过

 

希望对刚接触Python接口测试的同学有所帮助,也希望大家多多点赞收藏转发,您的鼓励是对我付出最大的支持!~


版权声明:本文为DebugboyAlphaGo原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。