• pytest测试框架


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 招手世界 2024-08-01 22:51 采纳率: 83.3% 浏览 30 首页/ 编程语言 / pytest测试框架 python测试用例测试工具 1.接口封装 #导包 import requests #创建接口类 #类名、属性名、属性值、实例方法、类方法、实例属性? class LoginApi(): #初始化 def __init__(self): #在类内部中,self是方法,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) #登录 #self局部变量,test_data全局变量 def post_login(self,test_data): return requests.post(url=self.url_login,json=test_data) 2.使用pytest框架调用接口执行用例,登录客达天下 from api.login import LoginApi import pytest class Test: #初始化 #前置处理 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.py']) 执行python时,报错 展开全部 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    2条回答 默认 最新

    • 程序员小羊! 2024-08-03 09:46
      关注

      这个错误通常发生在Python中使用类方法时,你没有正确地使用self参数。在Python中,实例方法必须至少有一个参数,通常被命名为self,它代表实例本身。当你在类中定义一个方法时,Python会自动将这个self参数加入到方法参数列表中。在第二段代码的第九行,你没有引用成功self.login_api = LoginApi

      评论
    • 清水白石008 2024-09-01 05:39
      关注
      🕒上午好,题主!目前:🟢[在线]
      📢参考GPT-4o mini 模型、由清水白石008整理提供!
      📣今日金句:“苦难是人生的老师,通过苦难,走向欢乐。” —— 贝多芬
      

      你的代码中有几个问题需要修正。以下是一些建议和改进:

      1. 修正 setup_method 方法

      setup_method 方法中,你应该实例化 LoginApi 类,而不是直接引用类名。

      2. 修正 pytest.main 调用

      pytest.main 调用中,确保传递的文件名是正确的。

      3. 添加 __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"])
      

      可能的报错原因

      1. 类实例化错误:确保在 setup_method 中正确实例化 LoginApi 类。
      2. 文件名错误:确保 pytest.main 中传递的文件名与实际文件名一致。
      3. 网络请求错误:检查网络请求是否成功,可能需要处理异常情况。

      运行测试

      确保你的测试文件名为 test_login.py,并在命令行中运行以下命令:

      pytest -s -v test_login.py
      

      希望这些改进能帮助你解决问题!如果还有其他问题,欢迎继续讨论。😊

      展开全部

      评论
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    数据库治理利器:动态读写分离
    关于win10 18362版之后的版本一个Bug
    如何:设置页边距
    Linux系统编程(一):文件 I/O
    【wordPress】WordPress删除index.php后缀【亲测有效】(手把手教学)
    colcon build --symlink-install 出现 colcon: 未找到命令
    30.7.5 忘记root密码的解决方案
    虚拟机Windows10 安装VMwareTools
    【java数据结构】栈和队列
    多核调度算法 - 加速因子 - 本质理解
  • 原文地址:https://ask.csdn.net/questions/8134566