• python实现xmind快速设计测试用例并导入TestLink


    本文我们将使用xmind设计测试案例,并导入到TestCase管理系统TestLink。 xmind 模板下载 链接: https://pan.baidu.com/s/1T2D9YUhjHoaWJ4NZQXgjDg 提取码: bztc 复制这段内容后打开百度网盘手机App,操作更方便哦

    原理

    Xmind生成的思维导图以 .xmind 为扩展名,其实这本质上是一个zip压缩文件。这里略带一点小知识。

    zip这一世界通用压缩标准是美国20世纪80年代著名程序员Phil Katz 发明的。当时为了对抗商业压缩软件ARC(缺钱买不起),Philip Katz 制作出了PKZIP,因为免费而且开放,越来越多的软件都内嵌支持zip,包括Windows操作系统。
    你可以使用任何一种文本编辑器打开zip文件,文件的头两个字母为 PK。

    xmind解压以后,里面主要由一些xml文件构成,解析content.xml 和 comment.xml 就可以获得思维导图的结构和主要文字内容

    xmind2testlink

    这是一个我使用Python实现对xmind进行解析的PyPI包,有了它你可以很方便地将xmind转化成其他系统使用的格式,比如TestLink。
    下载地址

    安装和使用

    使用pip可以快速安装xmind2testlink。

    pip install xmind2testlink -U

    安装后默认就提供了命令行转换功能,可以将xmind转成可以导入testlink的xml文件。

    xmind2testlink /path/to/testcase.xmind
    Generated: testcase.xml

    如果你想自己编程使用中间对象,可以导入xmind_parser或者testlink_parser中的方法。

    from xmind2testlink.xmind_parser import *
    from xmind2testlink.testlink_parser import *
     

    使用须知 v1

    并不是所有的xmind都可以顺利被xmind2testlink识别,因为我是按照一定规律去分析xmind结构的,所以如果你要使用这个小工具,那么请你遵循一些简单的游戏规则。
    在这里插入图片描述
    输出结果:
    在这里插入图片描述
    如图,你的xmind应该和上图结构一致:

    1. 默认的中心主题不会被转换,默认从第一层子主题开始转换。
    2. 第一层子主题会被识别为 TestSuite。
    3. TestSuite 的子主题 会被识别为 TestCase。
    4. TestCase 的下级分支为 TestStep 和 Expected Result。
    5. 你可以给 TestSuite,TestCase加上 Note,这会被识别为Summary 字段。
    6. 你可以给TestCase 加上 Comment,这会被识别为 Preconception 字段。
    7. 你可以使用数字Marker来为TestCase定义优先级。
    8. 你可以使用感叹号!来注释掉不想导入的任意分支。

    使用须知 v2

    在使用V1的规则一段时间后,发现不是特别xmind,xmind真正强大的地方在于发散思维整理,如果按照前面的规则使用xmind,会有很大的限制,于是我升级了xmind2testlink,称之为V2。看
    输出结果:

    输出结果是:


    基于V1,补充的规则如下:

    1. 根主题必须加上一个小星星,这是用来区分V1和V2的标识。
    2. 第一层子主题还是会被识别为 TestSuite 加上小旗。
    3. 之后的主题可以自由扩展,如果一个主题被标记了priority那么意味着case到此结束。
    4. 如果没有主题被标记priority,默认case取到最后一个主题。
    5. 默认使用空格连接case子主题,你可以指定其他连接符(根主题的最后一个字符)。
    6. TestCase 的下级分支为 TestStep 和 Expected Result  注意步骤那里一定记得要写上 step 关键词否则不会认为是 步骤。
    7. 所有case子主题的Summary和Preconception会被连接起来。
    8. 你可以给 TestSuite,TestCase加上 Note,这会被识别为Summary 字段。
    9. !开头的所有主题都会被自动忽略,可以用来隐藏或者注释某些不想导入的内容。

    进阶用法

    可能不是每个人都了解Python或者安装了Python,那么这是你可以将xmind2testlink部署成一个网站,步骤也非常简单。

    # clone this git repo ahead
    cd /path/to/xmind2testlink-master/web
    pip install -r requirements.txt -U
    python application.py
    * Serving Flask app "application" (lazy loading)
    * Environment: production
    WARNING: This is a development server. Do not use it in a production deployment.
    Use a production WSGI server instead.
    * Debug mode: on
    * Running on http://0.0.0.0:5001/ (Press CTRL+C to quit)
    * Restarting with stat
    * Debugger is active!
    * Debugger PIN: 228-906-357
    
    #注意这里支持的是python3  

    这时你启动浏览器就可以看到一个web版的转换界面。
    在这里插入图片描述
    这是一个由Flask写的简单程序,你可以将其部署到专门的服务器,详情请查阅官方文档。

    用法:点击 Click Here to Choose Your Xmind  上传本地的xmind 文件,在点击 Convert to TestLink 转换即可

    因为这样大气候一直会在服务器的控制台打印日志,用起来很不方便,所以我们可以用docker的形式进行启动

    1、首先要有docker 的环境 ,安装docker 可以参考:https://www.cnblogs.com/ningy1009/p/12910215.html

    2、下载源码包,进入 

    xmind2testlink-master/web 目录
    执行以下命令
    docker build -t xmind2testlink:latest .
    
    
    #注意后面的点不能丢,表示在当前目录下

    运行后结果

    [root@kycx185manage web]# docker build -t xmind2testlink:latest .
    Sending build context to Docker daemon  10.57MB
    Step 1/6 : FROM frolvlad/alpine-python3:latest
     ---> dd1e5224fc24
    Step 2/6 : RUN mkdir /app
     ---> Using cache
     ---> e973380e3024
    Step 3/6 : WORKDIR /app
     ---> Using cache
     ---> b9c4fe88a18c
    Step 4/6 : ADD . /app
     ---> Using cache
     ---> 278ae2a49aa3
    Step 5/6 : RUN pip3 install -r requirements.txt
     ---> Running in 3937a44a5ca7
    Collecting flask>=1.0
      Downloading Flask-1.1.2-py2.py3-none-any.whl (94 kB)
    Collecting xmind2testlink>=2.0
      Downloading xmind2testlink-2.0.9-py3-none-any.whl (9.1 kB)
    Collecting arrow>=0.15
      Downloading arrow-0.15.6-py2.py3-none-any.whl (47 kB)
    Collecting Jinja2>=2.10.1
      Downloading Jinja2-2.11.2-py2.py3-none-any.whl (125 kB)
    Collecting click>=5.1
      Downloading click-7.1.2-py2.py3-none-any.whl (82 kB)
    Collecting Werkzeug>=0.15
      Downloading Werkzeug-1.0.1-py2.py3-none-any.whl (298 kB)
    Collecting itsdangerous>=0.24
      Downloading itsdangerous-1.1.0-py2.py3-none-any.whl (16 kB)
    Collecting xmindparser
      Downloading xmindparser-1.0.8-py3-none-any.whl (6.3 kB)
    Collecting python-dateutil
      Downloading python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
    Collecting MarkupSafe>=0.23
      Downloading MarkupSafe-1.1.1.tar.gz (19 kB)
    Collecting six>=1.5
      Downloading six-1.14.0-py2.py3-none-any.whl (10 kB)
    Building wheels for collected packages: MarkupSafe
      Building wheel for MarkupSafe (setup.py): started
      Building wheel for MarkupSafe (setup.py): finished with status 'done'
      Created wheel for MarkupSafe: filename=MarkupSafe-1.1.1-py3-none-any.whl size=12629 sha256=4fbf57059b1aa939ebd80fc46c8799981207085f3f65f9cc2aef8cda162957fa
      Stored in directory: /root/.cache/pip/wheels/0c/61/d6/4db4f4c28254856e82305fdb1f752ed7f8482e54c384d8cb0e
    Successfully built MarkupSafe
    Installing collected packages: MarkupSafe, Jinja2, click, Werkzeug, itsdangerous, flask, xmindparser, xmind2testlink, six, python-dateutil, arrow
    Successfully installed Jinja2-2.11.2 MarkupSafe-1.1.1 Werkzeug-1.0.1 arrow-0.15.6 click-7.1.2 flask-1.1.2 itsdangerous-1.1.0 python-dateutil-2.8.1 six-1.14.0 xmind2testlink-2.0.9 xmindparser-1.0.8
    WARNING: You are using pip version 20.0.2; however, version 20.1.1 is available.
    You should consider upgrading via the '/usr/bin/python3.8 -m pip install --upgrade pip' command.
    Removing intermediate container 3937a44a5ca7
     ---> fd8ab75d117a
    Step 6/6 : CMD python3 application.py
     ---> Running in 8e1ddea69588
    Removing intermediate container 8e1ddea69588
     ---> 19e500dabb7c
    Successfully built 19e500dabb7c
    Successfully tagged xmind2testlink:latest
    再次启动镜像
    docker run -d --name xmind2testlink --restart always -p 5001:5001 xmind2testlink:latest

    运行后的结果

    [root@kycx185manage web]# docker run -d --name xmind2testlink --restart always -p 5001:5001 xmind2testlink:latest
    67cd624a3b7588c67f48aec4d00ffe536b5afeac13e9ce1705f3852344ffb0a9

    这样就会方便很多



  • 相关阅读:
    jQuery中 $ 符号的冲突问题
    典型用户,场景,用例图
    结对编程
    简易计算器
    对git的认识
    我的博客
    零基础免费搭建个人博客-hexo+github
    DTcmsV4.0分析学习——(3)URL重写
    DTcmsV4.0分析学习——(2)系统框架
    DTcmsV4.0分析学习——(1)数据库结构分析
  • 原文地址:https://www.cnblogs.com/ningy1009/p/12922646.html
Copyright © 2020-2023  润新知