测试之家
  • Topics
  • QA
  • 招聘
  • 社区学堂新
  • 开源项目
  • 活动
  • Wiki
  • Sign Up
  • Sign In
会员
Baoding
第 73101 位Users / 2022-08-06
3 篇帖子 • 31 条回帖
0 关注者
2 正在关注
15 收藏
未设置 GitHub 信息.
  • 个人信息
  • 专栏
  • 话题
  • 回帖
  • 收藏
  • 关注中
  • 关注者
  • 热门话题
  • 最近回帖
  • 招聘 已关闭
    0 个赞 / 6 条回复
  • 新手区 新接触接口自动化应该用什么框架,组件,工具?
    0 个赞 / 5 条回复
  • katalon 有使用过的大佬吗? at March 12, 2025

    官方文档写着有,怎么不看文档,怎么没把完整报错和运行环境贴出来
    https://docs.katalon.com/katalon-studio/troubleshooting/troubleshoot-mobile-automated-testing/troubleshooting-automated-mobile-testing-overview

  • 开发转测试想问一下各位在职大佬一些建议 at December 03, 2024

    快逃

  • 【吐槽】低代码的接口自动化测试平台不好用 at October 10, 2024

    好像就叫 apitest,体验太差了,一个用例编辑就能有四层页面深度,实际用起来还是点得发昏,还好跑了

  • 如何解决自动化切换数据库的问题 at September 03, 2024

    那听起来就是你们已经习惯了手写 mysql 的方式,按照加代理做语句替换的方式可能确实是最适合你们的,做好替换器的本地开发感觉是 ok 的

  • 如何解决自动化切换数据库的问题 at September 02, 2024

    描述再详细点?看看现在的调用链路上的结构是咋样的

  • 公司让我去做开发,我咋搞 at July 20, 2024

    上吧,练习写业务的绝佳机会,copilot 会告诉你答案

  • 请教一个 pytest 中 fixture 相关问题:将 fixture 中写入 allure 附件的代码提出来定义成自定义方法后,就无法按预期写入 allure 附件了 at July 03, 2024

    能理解这个目的,那你这里毕竟把【数据位置】和具体的 json 实例 : resp.json()['data']['list'][0]['id'] 耦合在一起了,得重新设计一下才行

    def get_value_by_path(json_data, path):
        for key in path:
            if isinstance(key, int) or key in json_data:
                json_data = json_data[key]
            else:
                return None 
        return json_data
    
    # 传参 path
    def check_response(resp, path, expected_code=2000):
        allure.step("Check response status code and content")
        try:
            assert resp.status_code == 200, f"Expected status code 200 but got {resp.status_code}"
            assert resp.json()['code'] == expected_code, f"Expected code {expected_code} but got {resp.json()['code']}"
            # 通过path 拿到数据
            return get_value_by_path(resp.json(), path)
        except (AssertionError,IndexError) as e:
            allure.attach(
                json.dumps(resp.json(), ensure_ascii=False, indent=2),
                name="response.json",
                attachment_type=allure.attachment_type.JSON
            )
            allure.attach(
                resp.text,
                name="response.text",
                attachment_type=allure.attachment_type.TEXT
            )
            raise AssertionError(f"Fixture: 断言失败") from e
    
    
    @pytest.fixture(scope="session", autouse=True)
    def tf_get_trainerId_xiehe(tf_getSession):
        url = Environment.HOST_ADMIN + 'managerList'
        data = {'page': 1,
                'limit': 30,
                'keys': Environment.userphone_tea,
                'characterType': 1,
                'roles': ''}
        resp = tf_getSession.post(url=url, data=data)
        # 自定义 【数据位置】
        target_path = ['data', 'list', 0, 'id']
        AssociatedDataTanQiang.id_xiehe_admin = check_response(resp,target_path)
           yield
    
  • 请教一个 pytest 中 fixture 相关问题:将 fixture 中写入 allure 附件的代码提出来定义成自定义方法后,就无法按预期写入 allure 附件了 at July 03, 2024
    # 传参去掉target_position
    def check_response(resp, expected_code=2000):
        allure.step("Check response status code and content")
        try:
            assert resp.status_code == 200, f"Expected status code 200 but got {resp.status_code}"
            assert resp.json()['code'] == expected_code, f"Expected code {expected_code} but got {resp.json()['code']}"
            # target_position在内部的异常处理内再显式调用
            return resp.json()['data']['list'][0]['id']
        except (AssertionError,IndexError) as e:
            allure.attach(
                json.dumps(resp.json(), ensure_ascii=False, indent=2),
                name="response.json",
                attachment_type=allure.attachment_type.JSON
            )
            allure.attach(
                resp.text,
                name="response.text",
                attachment_type=allure.attachment_type.TEXT
            )
            raise AssertionError(f"Fixture: 断言失败") from e
    
    
    @pytest.fixture(scope="session", autouse=True)
    def tf_get_trainerId_xiehe(tf_getSession):
        url = Environment.HOST_ADMIN + 'managerList'
        data = {'page': 1,
                'limit': 30,
                'keys': Environment.userphone_tea,
                'characterType': 1,
                'roles': ''}
        resp = tf_getSession.post(url=url, data=data)
        # 只传resp
        AssociatedDataTanQiang.id_xiehe_admin = check_response(resp)
           yield
    
  • 请教一个 pytest 中 fixture 相关问题:将 fixture 中写入 allure 附件的代码提出来定义成自定义方法后,就无法按预期写入 allure 附件了 at July 03, 2024

    这里不是 allure,fixture,异常处理等等特性的原因
    简单理解一下
    IndexError 就是越界异常,或者说下标找不到
    你再看一下 checkresponse 这个入参
    resp.json()['data']['list'][0]['id']
    这个 resp 数据的 list 已经没有第 1 个 list,也没有 list 中的 id 了

  • 请教一个 pytest 中 fixture 相关问题:将 fixture 中写入 allure 附件的代码提出来定义成自定义方法后,就无法按预期写入 allure 附件了 at July 03, 2024


    就是这么越界的吧

关于 / 活跃用户 / 中国移动互联网测试技术大会 / 反馈 / Github / API / 帮助推广
TesterHome社区,测试之家,由众多测试工程师组织和维护的技术社区,致力于帮助新人成长,提高测试地位,推进质量发展。Inspired by RubyChina
友情链接 WeTest腾讯质量开放平台 / InfoQ / 掘金 / SegmentFault / 测试窝 / 百度测试吧 / IT大咖说
简体中文 / 正體中文 / English

©testerhome.com 测试之家   渝ICP备2022001292号
  渝公网安备 50022202000435号    版权所有 © 重庆年云聚力信息技术有限公司