前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅浅的分享下这几天写pytest脚本的一些收获

浅浅的分享下这几天写pytest脚本的一些收获

作者头像
小博测试成长之路
发布2024-03-25 17:19:57
980
发布2024-03-25 17:19:57
举报
文章被收录于专栏:软件测试学习软件测试学习

先来说下背景,为什么最近又在开始写pytest的脚本了,那自然是要把部门的接口自动化搞起来呗,之前搞的metersphere那套维护不下去了,加上一些其他原因,已经放弃了,打算试试新的。然后,最后还是觉得写脚本最方便,同时,最大的问题也是:写脚本太灵活,不易管理。

pytest其实上手的话还是比较快的,好早好早之前就稍微拿了本书看了前面一点点基础 ,然后写过一篇文章:一篇文章为你揭秘pytest的基本用法

但是,具体上次写pytest的文章已经过了好久了,而且也没怎么在公司实战运用起来,学的东西很快就忘记了,这两天刚开始写脚本,发现脚本写起来还是蛮有意思的,沉迷于写脚本加班的快乐中,在写脚本的过程中也遇到了一些问题,简单记录一下,当然写的不一定对 ,需要大家自己去识别。

1、conftest里面定义的fixture理论上只能直接用在test开头的用例函数上,能当做传参用在普通函数上吗?

用ai查了一下说貌似是不能这么使用,后来在网上查了下 ,貌似有的说pytest里面有个什么内置的request可以获取fixture,不过我试了下貌似没成功,可能用法有问题咯

2、今天遇到一个好奇怪的问题,我代码的目录结构包含以下几个包:api_definition、testcase、testdata等,今天写脚本的时候,发现运行用例的时候,代码里面用到的from testdata.xxx import xxxx 这么使用居然有问题,说是找不到module,然后查了半天资料也没能解决,网上有说将文件路径append到环境变量中,这个试过了不行。还有的说安装一个插件,然后在pytest.ini文件里面可以指定pythonpath的路径啥的,这个试了貌似也没有效果,我用的最新版,不知道是不是跟版本有关系,后来把testdata的名字改成testcase_data就可以了,我就感觉到很奇怪。当时pytest.ini文件里面如下:

代码语言:javascript
复制
[pytest]
python_files = test_*.py *_test.py
python_classes = Test*
python_functions = test_*

3、再讲一下场景一里面遇到的问题,当时为什么非得想在普通函数里面去调用fixture呢,因为当时同事在conftest里面定义了一个获取数据库连接的函数 ,我想在普通函数里面调用后,然后传给pytest.mark.parametrize当数据驱动使用的,后来折腾了半天没解决,我就把获取数据库连接的写到一个工具类,然后定义为单例模式,保证一个数据库同一时间只有一个连接对象 ,然后在conftest里面写一个fixture的函数,每次运行完用例之后自动的关闭数据库连接。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小博测试成长之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档