• 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
      

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

      展开全部

      评论
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    C语言——贪吃蛇小游戏
    Spark集群中一个Worker节点启动失败的排错记录
    Mysql语法分析实验(一)
    27 行为型模式-解释器模式
    SQL注入漏洞 | iwebsec
    SpringBoot+Redis 防止用户重复登录
    【Qt 学习笔记】Qt常用控件 | 显示类控件 | Label的使用及说明
    window10环境构建和运行skia源码
    LeetCode【1. 两数之和】
    亚马逊新手运营需要规避哪些风险?怎么分析竞争对手?——站斧浏览器
  • 原文地址:https://ask.csdn.net/questions/8134566