这个错误通常发生在Python中使用类方法时,你没有正确地使用self参数。在Python中,实例方法必须至少有一个参数,通常被命名为self,它代表实例本身。当你在类中定义一个方法时,Python会自动将这个self参数加入到方法参数列表中。在第二段代码的第九行,你没有引用成功self.login_api = LoginApi
🕒上午好,题主!目前:🟢[在线]
📢参考GPT-4o mini 模型、由清水白石008整理提供!
📣今日金句:“苦难是人生的老师,通过苦难,走向欢乐。” —— 贝多芬
你的代码中有几个问题需要修正。以下是一些建议和改进:
setup_method
方法在 setup_method
方法中,你应该实例化 LoginApi
类,而不是直接引用类名。
pytest.main
调用在 pytest.main
调用中,确保传递的文件名是正确的。
__init__
方法确保 Test
类有一个 __init__
方法来初始化 LoginApi
实例。
# 导包
import requests
import pytest
# 创建接口类
class LoginApi:
# 初始化
def __init__(self):
self.url_verify = "http://kdtx-test.itheima.net/api/captchaImage"
self.url_login = "http://kdtx-test.itheima.net/api/login"
# 获取验证码
def get_verify(self):
return requests.get(url=self.url_verify)
# 登录
def post_login(self, test_data):
return requests.post(url=self.url_login, json=test_data)
# 使用pytest框架调用接口执行用例
class TestLogin:
# 前置处理
def setup_method(self):
self.login_api = LoginApi()
# 后置处理
def teardown_method(self):
pass
def test01_login_success(self):
res_v = self.login_api.get_verify()
print(res_v.status_code)
print(res_v.json())
# 打印uuid数据
print(res_v.json().get("uuid"))
test_login = {
"username": "admin",
"password": "HM_2023_test",
"code": 2,
"uuid": res_v.json().get("uuid")
}
res_l = self.login_api.post_login(test_data=test_login)
print(res_l.status_code)
print(res_l.json())
if __name__ == "__main__":
pytest.main(["-s", "-v", "test_login.py"])
setup_method
中正确实例化 LoginApi
类。pytest.main
中传递的文件名与实际文件名一致。确保你的测试文件名为 test_login.py
,并在命令行中运行以下命令:
pytest -s -v test_login.py
希望这些改进能帮助你解决问题!如果还有其他问题,欢迎继续讨论。😊