# 上传自定义测试用例指引
测试用例上传到平台后,平台会将zip包进行解压,然后利用Python内置的inspect模块分析出test
打头的测试函数名称。
在inspect过程中,会把每个Python文件执行一遍,可能会出现因为case目录结构不合理导致的分析失败。
# 推荐目录结构
推荐两种用例目录组织结构:
①
___my_case
|___test_a.py // from util.base import xxxx
|___test_b.py // from util.base import xxxx
|___util
|___ __init__.py
|___base.py
选择test_a.py、test_b.py和util目录一起打包压缩成case.zip
②
___my_case
|___test_pack
|___ __init__.py // 注意这里,加上__init__.py使整个test_pack成为一个包
|___test_a.py // from test_pack.util.base import xxxx
|___test_b.py // from test_pack.util.base import xxxx
|___util
|___ __init__.py
|___base.py
选择test_pack目录压缩成case.zip
注意:以上两种方式中,不要直接选中"my_case"这层目录进行压缩!!!
# 本地调试
出现问题时可以 下载脚本 来辅助debug
cd ${your_path}/local_script
python3 debug_analyse.py -d ${your_case_path}
参考示例:
cd /leviwu/test/local_script
python3 debug_analyse.py -d /leviwu/minitest-case/user_case/my_case
如果控制台有标准输出,说明case分析成功
常见错误如下:
- ValueError: source code string cannot contain null bytes 请确保文件是UTF-8编码
# 用例需要额外第三方库文件
目前云测服务已经安装了常用的第三方库,如dateutil
xlwt
xlrd
pandas
nose
pandas
,但是无法覆盖所有的第三方库,如果用例解析出现了 ModuleNotFoundError, ImportError
类似的错误,一般是用例使用的第三方库文件,这时需要将第三方库也上传过来。
特别注意,强烈建议在Linux
或Mac
环境下安装。因为云测服务和真机跑测处于Linux环境,很多第三方库如果对不同的平台(Win、Mac、Linux)有不同的版本,此时在Windows下安装的包体,上传到Linux下无法解析。
下面以 faker
(注:faker库云测已安装,此处只是用来举例)库为例,在云测使用具体步骤如下:
# 1、将第三方库安装在minitest_lib文件夹下面
pip支持可以将库安装在指定的文件夹下面,在云测中,统一都放在 minitest_lib
文件夹下。请注意,云测服务只识别minitest_lib
文件夹,其他文件夹不识别!
以faker为例,在case的目录下执行安装,参考命令如下:
# 注意只需要将faker替换成你需要的库,其他参数保留
pip3 install faker -t minitest_lib -I --no-deps
# 参数解释:
# -t: 指定路径,此处必须为 minitest_lib
# --no-deps: 不安装库的依赖包
# 2、使用debug_analyse.py调试
安装完库文件后,用本地调试中的debug_analyse.py脚本调试case。常见的错误情况如下:
- 如果还有ModuleNotFoundError等错误,说明还有其他的依赖库文件没有安装,需要继续安装对应的库文件
- 在测试用例的代码中,如果要引用第三方库文件,直接引用就好了,如
import faker
,不需要from minitest_lib import faker
# 3、上传到云测,再次调试
本地调试成功后,将用例上传到云测服务即可,此时如果还有报错,请检查:
- 有些库可能本地python3环境已经安装了,这时候在debug_analyse.py中也会执行成功,但是上传云测报错。例如本地已经安装dateutil,云测没有安装,上传时会继续报错
ModuleNotFoundError: No module named 'dateutil'
,此时需要将datetutil也安装即可,如执行pip3 install python-dateutil -t minitest_lib --no-deps -I
- 一些特别复杂的库文件还需要安装二进制文件才能使用,云测无法支持
- 再次提醒,尽量在
linux
或Mac
环境下安装包体,调试脚本。这样和云测环境保持一致,避免window环境出现安装包环境或字符编码错误
如果还出现错误,请加入云测服务官方企微群,联系MiniTest小助手反馈