小程序云测服务进阶使用—自定义测试之文件数据读取

文章介绍了在使用Minium框架进行小程序云测时,用户在读取文件数据(如CSV)时遇到的文件路径问题。当用例在本地执行成功但在云测环境中报错,通常是因为路径问题。解决方案是通过获取当前脚本的绝对路径,确定项目根目录,然后构建相对于项目根目录的文件路径,确保在任何环境下都能正确读取文件。文章提供了获取文件路径的示例代码,并展示了如何在测试用例中使用读取的数据进行DDT数据驱动测试。

背景介绍

小程序云测服务 支持用户可以使用 Minium 框架编写测试用例

在用户编写用例时,经常遇到的一个场景就是文件数据读取,例如:

  • 将用例相关参数放在csv文件中,然后再用例里面去读取对应的配置,执行不同的逻辑
  • 使用 数据驱动测试 时,将数据驱动源从YAML、CSV等文件传入

执行文件数据读取相关用例时,获取文件路径是关键

很多用户会发现在本地执行Minium 用例时可以执行成功,在云测执行就会报 No such file or directory 文件找不到这样的错误

产生这样报错的原因有很多种,比如:

  • 用例直接使用绝对路径去定位,如 D:\minium\xxx, 而在云测执行时,这样的路径显然是不存在的
  • 用例使用相对路径定位,用户本地执行用例时,使用PyCharm等工具执行。PyCharm可能 配置了环境变量,或者将当前执行路径加入环境变量,所以本地执行可以找到文件并执行成功。当在云测服务执行时,是在用例的根目录执行的,此时可能无法找到文件地址

解决方案

为了帮助用户解决在用例中文件路径找不到的问题,我们给出了可以在本地和云测同时跑通的 示例代码目录结构如下所示。其中 bases/base_path.py 给出了读取存储文件路径关键代码,test/first_test.py 给出了具体case使用的示例

─ddt-project
│  │  config.json
│  │
│  ├─bases
│  │  │  base_path.py  //处理文件路径
│  │  │  __init__.py
│  │  │
│  │  └─data //存储文件数据
│  │          1.csv
│  │          3.yml
│  │          4.xlsx
│  │
│  └─test  //测试用例
│          first_test.py
│          __init__.py

1、获取文件路径

bases/base_path.py中给出了读取存储文件路径关键代码,思路就是:

  1. 先获取当前环境下,base_path.py的绝对路径,如 /home/runtest/cases/bases/base_path.py
  2. 然后根据base_path.py的绝对路径,获取项目根路径,即返回上两级,如 /home/runtest/cases/
  3. 然后获取要读取的文件的相对路径(相对于项目根目录的路径)。例如我们要读data下的1.csv,它相当于项目根目录下的相对路径是 /bases/data/1.csv
  4. 最后把项目根路径,与要读取文件的相对路径进行连接。例如连接后的路径为 /home/runtest/cases/bases/data/1.csv

这样无论在什么环境下,最终读取的都是当前环境的绝对路径,保证文件能够读取成功

关键函数如下所示:

def g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值