运行unittest接口测试代码报AttributeError:'TestAPI'无对应属性问题问询
错误原因排查与解决
触发报错的核心原因
- 方法名不匹配:
TestAPI类中实际定义的测试方法名为test_get_providers和test_get_machines,但入口代码中调用的test_1_get_all_providers、test_2_get_all_machines方法不存在,直接触发属性不存在的报错。 - 不符合unittest使用规范:unittest框架默认会自动识别所有以
test开头的测试方法,无需手动实例化测试类、手动调用测试方法,手动调用的方式既容易写错名称,也无法使用unittest自带的用例统计、断言校验汇总等能力。
修复方案
推荐方案(符合unittest标准用法)
直接替换入口代码为unittest标准启动方式,框架会自动执行所有符合命名规则的测试用例:
if __name__ == "__main__": unittest.main()
手动调用方案(不推荐)
如果要保留手动调用的写法,将调用的方法名修改为类中实际定义的名称即可:
if __name__ == "__main__": tester = TestAPI() tester.test_get_providers() tester.test_get_machines()
额外注意事项
你请求的是HTTPS的内网IP地址,大概率用的是自签名证书,直接请求会触发SSL报错,可以在requests.get方法中添加verify=False参数跳过证书校验,示例:response = requests.get(self.url, verify=False)
内容的提问来源于stack exchange,提问作者Ashok emani
相关产品推荐
相关产品推荐

