最近,我在做项目的时候,经常被问到一个问题:如何做测试评审会更有效呢?
  只要做过测试用例评审,特别是比较复杂的测试用例评审的时候,很多测试同学都会苦恼于如何能更有效的向大家说出自己的测试设计思路。
  当然,CC先生的建议是测试用例评审更多的是测试范围的确认,测试方案的讨论和测试思路的对齐。
  如何能更好的体现出测试设计思路?
  推荐大家使用的可视化工具是脑图。脑图PC版里被使用比较多的工具就是xmind。
  可大家很苦恼的问题在于有时候公司会有测试用例存档的要求。也就是有一个从测试设计思路到测试用例Excel保存的需求。
  xmind pro版是有直接从xmind导为excel表格的功能,but,好多同学不屑于买pro版(其实是qiong),那怎么办呢?一句老话,自己动手,丰衣足食咯。
  先看看最后的效果图:
  xmind2excel
  其中会用到的python的知识点为:
  xml文件读取 xml etree的用法
  excel表格的写入
  python 参数解析内嵌库 argparse argparse - 命令行选项与参数解析(译)
  转化步骤
  1.xmind中创建所需文件,以freemind的格式导出,导出文件的后缀名为*.mm的文件
  2.*.mm的文件本身是xml展现
  3.通过python把xml文件处理为excel表格形式
  import xml.etree.ElementTree as ET
  import xlwt
  import argparse
  g_row = 0
  def do_write_excel(text, row, col):
  ws.write(row, col, text)
  #通过递归的获取子节点的形式达到获取 xml 等级
  def perf_func(elem, func, level = 0):
  global g_row
  func(elem, g_row, level)
  for child in list(elem):
  name = child.get('TEXT')
  perf_func(child, func, level + 1)
  if child.find('node') is None and name is not None:
  g_row = g_row + 1
  def write_excel(elem, row, level):
  name = elem.get('TEXT')
  if name is not None:
  do_write_excel(name, row, level)
  #python 参数解析内嵌库 argparse,带两个参数
  parser = argparse.ArgumentParser()
  parser.add_argument('-i', '--input-file', type=str, dest='inputfile', required=True)
  parser.add_argument('-o', '--output-file', type=str, dest='outputfile', default='freemind2excel.xls', help='Default outputfile is freemind2excel.xls')
  args = parser.parse_args()
  if args.inputfile is None:
  parser.print_help()
  exit()
  root = ET.parse(args.inputfile)
  map_version = root.getroot()
  first_node = map_version.find('node')
  wb = xlwt.Workbook()
  ws = wb.add_sheet('freemind2excel')
  perf_func(first_node, write_excel)
  wb.save(args.outputfile)
  运行的时候,带上需要输入的文件名和输出的文件名,最后你就可以得到一个想要的excel测试用例文件啦~~~~
  如果想要测试用例文件更好看一点儿还可以加上标题行和序列号等等,大家可以自行发挥咯~
 
 
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
 
 

测试用例逐步演进-xmind2excel(Python版)测试用例逐步演进-xmind2excel(Python版)的更多相关文章

  1. appium+python+unittest 测试用例的几种加载执行方式

    利用python进行测试时,测试用例的加载方式有2种: 一种是通过unittest.main()来启动所需测试的测试模块:  一种是添加到testsuite集合中再加载所有的被测试对象,而testsu ...

  2. Python实例---利用正则实现计算器[FTL版]

    import re # 格式化 def format_str(str): str = str.replace('--', '+') str = str.replace('-+', '-') str = ...

  3. 孤荷凌寒自学python第六十一天在Fedora28版的linux系统上找搭建本地Mongodb数据服务

    孤荷凌寒自学python第六十一天在Fedora28版的linux系统上找搭建本地Mongodb数据服务 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第七天.成功在本地搭建 ...

  4. 分享《Python 游戏编程快速上手(第3版)》高清中文版PDF+高清英文版PDF+源代码

    通过编写一个个小巧.有趣的游戏来学习Python,通过实例来解释编程的原理的方式.14个游戏程序和示例,介绍了Python基础知识.数据类型.函数.流程控制.程序调试.流程图设计.字符串操作.列表和字 ...

  5. python学习_新闻联播文字版爬虫(V 1.0版)

    python3的爬虫练习,爬取的是新闻联播文字版网站 #!/usr/bin/env python # -*- coding: utf-8 -*- ''' __author__ = 'wyf349' _ ...

  6. 【转载】Stackless Python并发式编程介绍[已校对版]

    Stackless Python并发式编程介绍[已校对版] 作者:    Grant Olson 电子邮件:    olsongt@verizon.net 日期:    2006-07-07 译者:  ...

  7. 《Python学习手册 第五版》 -第2章 Python如何运行程序

    第二章主要讲解了Python的运行机制, 在开始之前,需要明确以下几点 因为<Python学习手册>这本书是面向市场很多人的,既然有很多人,就有很多不一样的需求和使用情况,这本书涵盖Pyt ...

  8. 官网服务质量检测脚本(源码来自《Python自动化运维实战》第二版刘天斯)

    脚本Python版本2.7 #!/usr/bin/python #-*- coding:utf-8 -*- import os,sys import time import sys import py ...

  9. Python 重点知识整理(基于Python学习手册第四版)

    字节型编译 如果Python在系统中有写的权限,当程序运行时Python会把源码编译成字节码(与系统环境无关)存在一个.pyc扩展名文件中,如果没有修改源码而重新运行程序时,不会进行编译的步骤而使用字 ...

  10. Python游戏编程入门 中文pdf扫描版|网盘下载内附地址提取码|

    Python是一种解释型.面向对象.动态数据类型的程序设计语言,在游戏开发领域,Python也得到越来越广泛的应用,并由此受到重视. 本书教授用Python开发精彩游戏所需的[]为重要的该你那.本书不 ...

随机推荐

  1. Tomact和XML配置文件

    1 Http协议2 Tomcat服务器3 编写xml4 通过DTD约束编写指定格式的XML 5 通过Schema约束编写指定格式的XML6 使用D0M4J解析xml================== ...

  2. java 抽象方法

    int 是基本数据类型Integer是其包装类,注意是一个类.为什么要提供包装类呢???一是为了在各种类型间转化,通过各种方法的调用.否则 你无法直接通过变量转化.比如,现在int要转为Stringi ...

  3. 开启wifi后不能ping通本机 Cann't ping the local PC while start a wlan

    问题如题:今天发现一个问题,测试本机ip时候有时候总是获取失败,后来才发现是wifi共享软件导致的缘故. 本来呢?我买的是小米wifi,但是小米wifi对应的客户端不是很好用,动不动就启动失败,不要问 ...

  4. [学习笔记]Vfork深入理解

    #include<stdio.h> #include<stdlib.h> #include<string.h> #include <unistd.h> ...

  5. c# interface(接口)和abstract(抽象类)区别

    抽象类依然是一个类,不能被实例化,可以包含字段.成员变量.抽象方法.或者不抽象方法. 类继承抽象类,只重写抽象方法即可,其他是可以得到继承的. 接口是规则,里面只包含:方法.属性.索引.事件.类继承接 ...

  6. Sublime Text PHP Mac系统环境配置

    Mac系统对于PHP运行非常友好,我们只需要进行简单的配置便可以开始进行使用,本篇文章将一步一步地介绍Apache.PHP和MySQL的安装与配置,为开始进行开发铺好路 Apache 启动Apache ...

  7. 海量推荐系统:mapreduce的方法

    1. Motivation 2. MapReduce MapReduce是一种数据密集型并行计算框架. 待处理数据以"块"为单位存储在集群机器文件系统中(HDFS),并以(key, ...

  8. SQL的发展史

    在20世纪60年代,网状数据库系统(如CODASYL)和分层数据库系统(如IMS TM)是用于自动化银行业务.记帐和订单处理系统的一流技术,这些系统是由于商业大型计算机的引入才启用的.而SQL是在70 ...

  9. PS2018学习笔记(03-18节)

    3-认识主界面 # 主界面包括: 菜单栏.选项栏.工具栏.面板.图像编辑窗口(中间)和状态栏(底部): # 界面设置: 方法1:Ctrl+k:打开界面设置; 方法2:编辑-首选项-界面 # shift ...

  10. Django之博客系统:用户登陆

    使用django有一个好处就是有各种各样的框架可以拿来直接使用.相比flask,django自带的框架确实要多很多.比如这一章就要介绍的用户登录.Django拥有一个内置的认证(authenticat ...