最近了解到了 MBT,结合项目开发了个框架,不知道称不称得上是 MBT。
刚开始弄,文档也还很简陋,希望大家能给一些建议
项目地址:https://github.com/CXingL/MBT_CX
MBT (Model-based testing) 基于模型测试
属于一种测试方法:利用模型自动产生测试用例/测试套件,然后执行测试。
在 MBT 目录下执行 python3 run_model.py -t model/example.graphml
检查模型图是否正确,确认没有报错或者死循环;
然后执行 python3 run_model.py -f model/example.graphml
,会在 page_script 目录下生成一个 example_web.py(模型图文件名_测试平台.py)的文件
打开上一步生成的 py 文件,按 selenium 规则完成脚本:
pytest
开始测试,测试效果:执行测试前可以先打开 test_main.py 文件进行一些简单的设置,例如设置运行浏览器、测试的执行速度、测试文件较多时,可以在 test_main 中选择跳过一些测试等
查看和编辑模型图的软件,模型图文件全部在 model 文件夹下,后缀为 .graphml 的文件
下载地址: https://www.yworks.com/downloads - yEd
也可以在线使用:https://www.yworks.com/yed-live/
安装并配置 Java 环境,推荐 Java8
安装并配置 Python3 环境
命令行 json 处理工具,对 graphwalker 生成的测试用例进行筛选,安装方法:brew install jq
(需要先安装 brew)。其它安装方法请查看官方文档:https://stedolan.github.io/jq/
selenium:浏览器自动测试工具,安装 Python3 后在终端输入 pip3 install selenium
即可安装
pip3 install -r requirements.txt
安装框架中所用到的库E selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Error Domain=com.facebook.WebDriverAgent Code=1 "The element '"Cancel" Button' is not visible on the screen and thus is not interactable" UserInfo={NSLocalizedDescription=The element '"Cancel" Button' is not visible on the screen and thus is not interactable}
应该是 appium 的 bug,解决办法:尝试升级 Appium 或者 iOS 版本,具体见:
https://github.com/facebook/WebDriverAgent/issues/914