最近,我在做项目的时候,经常被问到一个问题:如何做测试评审会更有效呢?
  只要做过测试用例评审,特别是比较复杂的测试用例评审的时候,很多测试同学都会苦恼于如何能更有效的向大家说出自己的测试设计思路。
  当然,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. [cf557d]Vitaly and Cycle(黑白染色求奇环)

    题目大意:给出一个 n 点 m 边的图,问最少加多少边使其能够存在奇环,加最少边的情况数有多少种. 解题关键:黑白染色求奇环,利用数量分析求解. 奇环:含有奇数个点的环. 二分图不存在奇环.反之亦成立 ...

  2. HDU 4879 ZCC loves march (并查集,set,map)

    题面以及思路:https://blog.csdn.net/glqac/article/details/38402101 代码: #include <bits/stdc++.h> #defi ...

  3. 算法Sedgewick第四版-第1章基础-2.1Elementary Sortss-006归并排序(Mergesort)

    一. 1.特点 (1)merge-sort : to sort an array, divide it into two halves, sort the two halves (recursivel ...

  4. linux环境启动django项目

    BBS部署步骤 安装python3.6(如已安装无需重复) install python3.6 把BBS项目传上来 rz 选择文件 BBS.tar 解压文件 tar -xvf BBS.tar 安装my ...

  5. Entity Framework Tutorial Basics(30):

    CRUD using Stored Procedure: In the previous chapter, we have seen how to get data using a stored pr ...

  6. Entity Framework Tutorial Basics(17):DBSet Class

    DBSet Class DBSet class represents an entity set that is used for create, read, update, and delete o ...

  7. Ubuntu学习小结(二)PostgreSQL的使用,进程的查看关闭,编辑器之神Vim入门

    距离上次发布文章已经过去了很久.在过去的半年中,虽然写的代码不多,但是在接触了计算机一些其他的知识,包括数据库.网络之后,感觉能够融会贯通,写代码水平又有了一定的提高.接下来,将会发表几篇文章,简单介 ...

  8. Xamarin.Forms(一) 学习笔记

    Xamarin.Forms是Xamarin跨平台开发app的跨平台的一个Framework,要使用这套Framework,要从XAML说起. XAML是同通过xml的方式来描述控件和动作,可以通过编译 ...

  9. 动态合并GridView数据行DataRow的列

    前段时间,Insus.NET一直在演示GridView控件Header头行或列:<动态变更GridView控件列名>和<动态合并或定制GridView控件Header头某些列> ...

  10. Java为何这么难学?

    在学校的时候,就开始接触Java,哪个时候学的是基础的语法.毕业之后,由于没有找到实习工作且没有从事Java开发,慢慢的就把Java给丢了.从学校出来的几个同事,有的进入了项目实施行业,做了项 目经理 ...