Excel测试用例导入到Testlink方法

合集下载

TestLink的使用详解

TestLink的使用详解

TestLink的使⽤详解测试管理⼯具,是指⽤⼯具对软件的整个测试输⼊、执⾏过程和测试结果进⾏管理的过程。

可以提⾼回归测试的效率、⼤幅提升测试时间、测试质量、⽤例复⽤、需求覆盖等。

TestLink⽤于进⾏测试过程中的管理,通过使⽤TestLink提供的功能,可以将测试过程从测试需求、测试设计到测试执⾏完整地管理起来,同时,它还提供了多种测试结果的统计和分析,使我们能够简单地开始测试⼯作和分析测试结果。

⽽且,TestLink可以关联多种bug跟踪系统,如Bugzilla、mantis和Jira、readme. TestLink是sourceforge的开放源代码项⽬之⼀,是基于PHP开发的、WEB⽅式的测试管理系统,其功能可以分为两部分管理和计划执⾏。

管理部分,包括产品管理、⽤户管理、测试需求管理和测试⽤例管理; 计划执⾏部分,包括测试计划并执⾏测试计划,最后显⽰相关的测试结果分析和测试报告。

TestLink的主要功能包括:测试需求管理测试⽤例管理测试⽤例对测试需求的覆盖管理测试计划的制定测试⽤例的执⾏⼤量测试数据的度量和统计功能TestLink的主要特⾊包括:⽀持多产品或多项⽬经理,按产品、项⽬来管理测试需求、计划、⽤例和执⾏等,项⽬之间保持独⽴性;测试⽤例,不仅可以创建模块或测试套件,⽽且可以进⾏多层次分类,形成树状管理结构;可以⾃定义字段和关键字,极⼤地提⾼了系统的适应性,可满⾜不同⽤户的需求;同⼀项⽬可以制定不同的测试计划,可以将相同的测试⽤例分配给不同的测试计划,⽀持各种关键字条件过滤测试⽤例;可以很容易地实现和多达8种流⾏的缺陷管理系统(如mantis、bugzilla、Jira、readme等)集成;可设定测试经理、测试组长、测试设计师、资深测试⼈员和⼀般测试⼈员等不同⾓⾊,⽽且可⾃定义具有特定权限的⾓⾊。

测试结果可以导出多种格式,如HTML、MS Excel、MS Word和Email等。

Testlink新建版本,添加测试用例计划,执行测试用例

Testlink新建版本,添加测试用例计划,执行测试用例

一、新建一个版本
点击测试计划管理中的版本管理:
点击创建
填好相关信息进行创建。

二、当测试用例没有添加到测试计划时:
进入到TestLink首页,点击测试用例集中添加/删除测试用例到测试计划。

点击页面左边列表中的某个模块的用例,然后在右边添加时分配给用户jenkins,添加版本时分配给指定的版本,比如这里是TBM1.0.9.4_Chrome_20160920。

然后点击反转选择全部测试用例后的正在添加,接着点击增加选择的测试用例,这时看到页面右下方的用例都标黄:
每个模块都执行同样的操作,当一个模块用例数很多时,最好进入到细分的模块中执行这样的操作,避免因为用例数过多在操作时漏掉。

三、对于新建的版本进行指派执行测试用例
回到Testlink主页面,点击测试用例集中的指派执行测试用例,在页面左侧测试计划中选中相应的测试计划,要指派的版本选中新建的版本。

测试方式选择自动的,点击应用过滤器。

点击左下方中筛选出来的自动化测试用例,点击每个模块的用例,在页面右侧点击反转选择全部测试用例,用户指派给jenkins,依次点击执行,保存按钮,如下图所示:
每个模块都执行同样的操作,当一个模块用例数很多时,最好进入到细分的模块中执行这样的操作,避免因为用例数过多在操作时漏掉。

TestLink测试管理工具安装与使用

TestLink测试管理工具安装与使用
� 进入“产品管理”大类的“测试项目管理”菜单,创建 新项目
� 默认设置下,只有admin 组的成员拥有对测试项目 进行操作的权力。
测试需求
� 在“需求”大类点击“需求规约”菜单,创建需求 � 进入“指派需求”菜单,可对测试用例管理需求
◦ 结果统计的时会根据需求覆盖率进行统计测试用例执行情 况
� 默认设置下,只有admin 组的成员拥有对需求进行 操作的权力
� 到测试规约中为测试用例关联测试计划 � 为测试计划指派执行的用户角色 � 为关键测试计划制定里程碑
执行计划/报告bug
� 执行测试计划以前,需要为测试计划创建一个里程 碑版本
◦ 在“测试计划管理”类中点击“编辑/删除里程碑”菜单
� 主页中,右侧最上方有一个下拉列表,用来选择当 前对其进行操作的测试计划
TestLink的安装
�XAMPP的安装
!若Apache启动不了, 可考虑端口冲突的原因 (80和433端口)
!为MySql root账户设 置密码
安装后的界面
TestLink的安装
�TestLink部署
1)将下载的TestLink程序压缩包解压 2)将解压包改名为testlink放入xampp程序的..xampp\thdocs目录 下 3)在浏览器输入:http://lcoalhost/testlink
第一步: 如果是第一次安装的话,在页面上选择new installation 第二步:Acceptance of License(接受许可) 第三步:检验系统和配置要求 第四步:数据库访问的定义(与MySQL)
4)删除TestLink的安ห้องสมุดไป่ตู้程序
删除..xampp\thdocs\testlink目录下的install目录

Testlink测试用例导入模板

Testlink测试用例导入模板

Testlink测试用例导入模板垃圾回收(Garbage Collection,GC)是一种自动管理内存的机制,它负责在程序运行时自动识别和释放不再使用的内存资源,以便重新利用这些资源。

垃圾回收机制是现代编程语言中的一个重要特性,它可以显著减少程序员对内存管理的负担,提高程序的可靠性和安全性。

垃圾回收的原理是基于内存中存储的对象是否还有活跃的引用。

当一个对象没有任何引用指向它时,就被认为是垃圾,可以被垃圾回收机制回收。

垃圾回收机制通过周期性地扫描内存,找出不再使用的对象并进行回收。

在回收内存时,垃圾回收机制会先标记所有的活跃对象,然后将未标记的对象进行回收。

这种方式称为标记-清除算法。

垃圾回收机制的工作过程可以分为以下几个阶段:1.标记:垃圾回收机制会从根对象(如全局变量、活跃线程等)开始,递归地遍历所有的对象,标记出所有活跃的对象。

2.清除:在标记阶段完成后,垃圾回收机制会遍历整个内存空间,将未标记的对象进行回收,释放它们占用的内存资源。

3.压缩:在清除阶段完成后,垃圾回收机制可能会将内存中的对象进行压缩,以便更好地利用内存空间。

垃圾回收机制有以下几个优点:1.自动管理内存:程序员不需要手动分配和释放内存,减少了内存泄漏和野指针等问题的发生。

2.提高程序可靠性:垃圾回收机制可以避免因为内存相关错误导致程序崩溃或产生不可预测的行为。

3. 提使用Testlink进行测试用例导入时,可以使用以下模板来规范测试用例的编写。

该模板包括了测试用例的基本信息、测试步骤和预期结果等内容,以确保测试用例的准确性和可读性。

测试用例模板:1.用例编号:每个测试用例都应该有一个唯一的编号,以便于标识和管理。

2.用例名称:给测试用例起一个简洁明确的名称,以便于理解和查找。

3.测试目的:明确测试用例的目的,即要验证的功能或需求。

4.前置条件:指明执行该测试用例前需要满足的条件或环境。

5.测试步骤:详细描述执行该测试用例的步骤,包括输入数据、操作步骤等。

Excel中测试用例导入TestLink

Excel中测试用例导入TestLink

第一步:准备好测试用例,并且按如下格式填写好
如上图所示用例分为三层目录
功能测试---功能项---各测试项的用例
第二步:打开文件格式转换工具Ex-Converter v 1.2.1
如上图所示填写,解释如下:
选择的为转换用例集,如果只是转换一个用例,不如直接去改了
Active Sheet选择 “1” 说明我选择的是我的源Excel 文件中的第一个表格。

Start Row表示的是Sheet1中你想要导入的用例集一从那一行开始到那一行结束。

例中是从第1行开始,第109行结束。

Level 1 Folder表示我在先择文件下建的第一级目录对应的值
我填的是“A ”(A是Excel的列号,这也是选择时要选第一行的原因)我导入成功后是这样的:
我先选择“点播业务”,然后Testlink上选择“导入用例集”获得的结果如下。

Levels 2 Folder我选择的 “B” ,如上图所示对应关系。

Name,Importance,Sumary,Preconditions ,Actions ,Expected Results可依次类推。

3.点击“Converter”进行转换,得到xml文件
4.在Testlink中导入文件
总结:简单的方法是表单和我图示的表单各列对应,转换工具填上一样的值就可以了。

Excel数据导入外部数据库连接和查询外部数据源

Excel数据导入外部数据库连接和查询外部数据源

Excel数据导入外部数据库连接和查询外部数据源在Excel中,我们可以通过外部数据库连接和查询外部数据源来实现数据的导入和使用。

这一功能可以帮助我们更方便地处理和分析大量的数据,提高工作效率。

本文将介绍如何使用Excel进行数据导入和外部数据源查询的方法和步骤。

一、外部数据库连接1. 打开Excel并创建一个新的工作簿。

2. 在工作簿的“数据”选项卡中,点击“从其他源”。

3. 在弹出的菜单中选择“从数据库”选项。

4. 在“数据源向导”中,选择一个数据库驱动程序,如Microsoft ODBC驱动程序。

5. 点击“下一步”并填写数据库服务器的详细信息,如服务器名称、数据库名称、用户名和密码等。

6. 完成连接设置后,可以选择“测试连接”来确保连接是否成功。

7. 点击“下一步”并选择在Excel中进行数据导入的方式,如选择表格、视图或者SQL查询。

8. 点击“下一步”并完成导入设置后,点击“完成”即可将数据导入到Excel中。

二、查询外部数据源1. 打开Excel并创建一个新的工作簿。

2. 在工作簿的“数据”选项卡中,点击“从其他源”。

3. 在弹出的菜单中选择“从数据连接向导”。

4. 在“数据连接向导”中,选择一个数据源类型,如数据库、文本文件或者Web。

5. 根据选择的数据源类型,填写相应的详细信息。

6. 点击“下一步”并选择在Excel中进行数据导入的方式,如选择表格、视图或者SQL查询。

7. 根据需要设置数据过滤和排序等选项。

8. 点击“下一步”并完成查询设置后,点击“完成”即可将数据查询结果导入到Excel中。

需要注意的是,使用外部数据库连接和查询外部数据源功能前,我们需要确保已经安装了相应的数据库驱动程序或者具有访问外部数据源的权限。

通过Excel的数据导入和外部数据源查询,我们可以更灵活地利用各种数据资源,并直接在Excel中进行数据的处理和分析。

无论是进行统计分析、制作图表还是生成报告,Excel的这一功能都能满足我们的需求,提高工作效率。

导入导出测试用例

导入导出测试用例

导入导出测试用例介绍在软件开发过程中,测试是一个非常重要的环节。

为了保证软件质量,我们需要设计和执行各种测试用例。

而在测试过程中,有时候需要将测试用例从一个系统导入到另一个系统中,或者将已有的测试用例导出备份。

本文将介绍如何进行导入导出测试用例的操作,并提供一些相关的技巧和注意事项。

导入测试用例导入测试用例是指将已有的测试用例数据从一个系统中导入到另一个系统中。

下面是一些常见的导入测试用例的方法:1. 手动输入最简单的方法是手动输入测试用例数据。

这种方法适合于只有少量测试用例需要导入的情况。

可以通过在目标系统中创建新的测试用例,并逐个输入相关信息来完成导入。

2. Excel文件另一种常见的方法是使用Excel文件来进行导入。

首先,在源系统中将所有需要导出的测试用例数据保存为Excel文件,然后在目标系统中使用相同格式的Excel文件进行导入操作。

具体步骤如下: - 在源系统中选择要导出的测试用例。

- 将选定的测试用例数据保存为Excel文件。

- 在目标系统中选择要导入的位置。

- 将Excel文件上传到目标系统并解析。

- 确认导入的测试用例数据是否正确,并进行必要的修改和调整。

3. 测试管理工具如果你正在使用测试管理工具,那么通常会提供导入功能。

这些工具通常支持将测试用例数据从其他系统或文件格式导入到目标系统中。

具体步骤如下: - 打开目标系统中的测试管理工具。

- 选择导入功能并指定导入源。

- 根据提示选择要导入的文件或系统,并进行必要的配置。

- 确认导入的测试用例数据是否正确,并进行必要的修改和调整。

导出测试用例导出测试用例是指将已有的测试用例数据从一个系统中备份到另一个地方,以便后续使用或分享。

下面是一些常见的导出测试用例的方法:1. Excel文件最常见且最简单的方法是将测试用例数据保存为Excel文件。

这种方法适合于需要与他人共享或备份大量测试用例数据的情况。

具体步骤如下: - 在源系统中选择要导出的测试用例。

Testlink详细使用介绍

Testlink详细使用介绍

三、TestLink主要功能介绍 分配测试任务
• 分配测试任务的方法有两种: 1、给计划添加用例的时候将用例直接分配给某人,如上一页提到的; 2、首页-测试用例集-指派执行测试用例 分派好后对应的测试人员在测试执行下面就能看到分派给自己的任务了
三、TestLink主要功能介绍
执行测试/提bug
测试执行的方法如下: 第1步:选择要执行的版本
TestLink使用介绍
Jessie详细版
培训内容
一、前言
二、TestLink角色介绍
三、TestLink主要功能介绍
四、TestConvert使用介绍
一、前言
Testlink用于测试过程中的管理,通过使用Testlink提供的功能,可以将测试设计 和测试执行完整的管理起来,同时它还提供了多种测试结果的统计和分析,使测试 人员能够简单的开始测试工作和分析测试结果,同时使管理者对项目的测试进展和 项目质量更加了解,提高对项目的可见度。同时,该平台也可以作为开发自测的平 台。
excel的表名导入后为一级标题,tab页签名字为2级模块名称,故建议一个模块写一个tab 页签。假如excel表格名称为“设置”tab1为:音频设置,tab2为:视频设置,tab3为:音 视频设置,用例导入后一级模块为设置,一级模块下面有三个二级模块为:音频设置,视 频设置和音视频设置。
四、TestConvert介绍
TestConLeabharlann ert使用方法1、打开TestConvert工具文件夹 2、运行exe程序,出现如下窗口,选择红色框里面的,然后选择要转换的文件即会生成一 个和excel同名的xml文件
四、TestConvert介绍
注意事项: 1、excel的模板不能随便改动,如增加或者删减表格项; 2、excel的importance字段值越大代表越重要,值的范围为1-3, 1为低优先级,2为中, 3为高优先级; 3、 excel的表名导入后为一级标题,页签名为二级标题,目前只支持2级模块的导入,如果 有三级四级需要先导入后再手动拆分; 4、用例上传只支持xml文件最大为400K,一般是满足了的,如果发现excel文件过大 需先清除excel的无效数据,具体解决办法找度娘。 5、如果最后的tab页签没内容注意删除。

TestLink使用说明书(整理)

TestLink使用说明书(整理)

TestLink使用说明书版本<v0.1>目录1.系统介绍 (3)1.1系统整体结构 (3)1.2基本属于介绍 (4)2.登录 (5)3.用户管理 (6)3.1设置用户 (6)3.2角色和权限 (7)3.3给测试项目指派角色 (10)3.4给测试计划指派角色 (11)4.测试项目管理 (11)4.1新建一个测试项目 (11)4.2编辑/删除测试项目 (12)5.自定义字段管理 (13)6.测试需求管理 (15)6.1创建测试需求规格 (15)6.2创建测试需求 (15)7.测试用例管理 (16)8.测试计划制定 (17)9.测试执行 (18)10.指派给tester的用例 (19)11.测试结果分析 (20)12.其它易用性功能 (23)13.总结 (23)前言TestLink用于进行测试过程中的管理,通过使用TestLink提供的功能,可以将测试过程从测试需求、测试设计、到测试执行完整的管理起来,同时,它还提供了好多种测试结果的统计和分析,使我们能够简单的开始测试工作和分析测试结果。

TestLink 是开放源代码项目之一。

作为基于web的测试管理系统,TestLink的主要功能包括:•测试需求管理•测试用例管理•测试用例对测试需求的覆盖管理•测试计划的制定•测试用例的执行•大量测试数据的度量和统计功能。

1.系统介绍1.1系统整体结构TestLink系统共有三大基石:测试项目,测试计划和用户。

其它的所有数据都与这三大基石相关或者是它们的属性。

1.2基本属性介绍测试用例--通过测试步骤(动作,场景)和预期结果来描述一个测试任务。

测试用例是TestLink里最基本成分。

测试套件--测试用例的组织单元。

它构成测试规约的逻辑部分。

(测试用例集)测试规约--TestLink将测试规约拆分为测试套件和测试用例,他们将会在整个应用中长期存在。

一个测试项目只能包含一个测试规约。

测试计划--在你执行测试用例之前,需要创建一个测试计划。

python 获取testlink的用例

python 获取testlink的用例

要使用Python获取TestLink中的测试用例,你需要使用TestLink API。

TestLink是一个基于web的测试用例管理系统,它提供了API接口,允许你通过编程方式与其进行交互。

下面是一个使用Python获取TestLink测试用例的示例代码:pythonimport requests# TestLink服务器的URLtestlink_url = 'http://your_testlink_server/testlink/'# TestLink的API密钥api_key = 'your_api_key'# 要获取测试用例的项目IDproject_id = 'your_project_id'# 发送GET请求获取测试用例response = requests.get(f"{testlink_url}/lib/api/rest/v2/getTestCasesForTestSuite?apiKey={api_key}&projectid={project_id }&testsuiteid=0&details=full")# 检查请求是否成功if response.status_code == 200:# 将响应内容解析为JSONdata = response.json()# 提取测试用例列表testcases = data['testCases']# 遍历测试用例并打印相关信息for testcase in testcases:print(f"TestCase ID: {testcase['id']}")print(f"TestCase Name: {testcase['name']}")print(f"TestCase Summary: {testcase['summary']}")# 可以根据需要提取其他字段信息else:print("请求失败")print("状态码:", response.status_code)print("错误信息:", response.text)请注意,你需要将上述代码中的your_testlink_server替换为你实际使用的TestLink服务器的URL,your_api_key替换为你的TestLink API密钥,your_project_id替换为你要获取测试用例的项目ID。

无需编程,一步步教你把xls格式测试用例转为xml,方便TestLink导入

无需编程,一步步教你把xls格式测试用例转为xml,方便TestLink导入

无需编程,一步步教你把xls格式测试用例转为xml,方便TestLink导入摘要:一直用开源工具TestLink来管理测试用例,最近升级到1.9.3版本后,被用例导入困扰了很久。

相信用过的人都知道,新版的TL导入用例有两个问题,一是直接导入xls格式会报错;二是如果要通过xml文件导入,需要将测试用例转换为xml格式。

而大多数公司的测试用例都是Excel的,若直接将xls另存为xml,很多人都被卡在了“xml没有映射关系”这个地方。

一开始也准备写个程序去做个转换,但是第六感告诉我,不需要这么麻烦!(程序员都很懒)。

只要有钻研精神,没有什么解决不了的问题。

下面就带领大家一步步搞定用例的导入。

说明:xml_module.xml - xml映射关系模版,用于添加到测试用例作为xml映射关系TestCase_Module.xls - 测试用例模版步骤:Step 1:分析TestLink用例的xml结构先在TL里写个用例,然后导出为xml格式,经过分析,得到如下图的基本结构。

(注:这个结构是我需要的几个关键节点)把它保存为一个xml文件,它就是我们需要的xml映射关系的模版。

Step 2:xls格式的测试用例导入映射关系,并保存为待导入TL用例的xml如下图,这是我根据上步得到的关键节点做的测试用例模版,打开office2010的“开发工具”项,选择“源”。

选择“xml映射...”, 把Step1保存的xml映射关系模版添加并确定。

从右侧面板里拖动映射节点到对应的Excel列上拖动完成后如下图最后把此Excel的用例另存为xml格式就可以导入到TestLink中去了!。

软件测试工具-testlink使用方法

软件测试工具-testlink使用方法

创建项目:(测试项目管理-新建项目)(FR)用户管理:创建用户产品设置:(测试计划在特定时间里描绘产品的测试。

这句话的意思就是说所有的测试计划需要根据产品测试用例来创建。

)这里的产品也就是项目创建测试需求:创建需求规格:需求-需求规约-选中产品点击-新建需求规约(客户端、服务器)创建需求:选中产品下的需求规格点击-创建新需求(状态、类型、需要的测试用例数)(登录、订票)创建测试用例创建测试集:(测试套件(Test Suites))主页-测试规约-编辑测试用例-()选中产品点击-右侧新建测试集创建测试用例:选中测试集点击-创建测试用例-点击保存-创建步骤(每次创建一步)需求关联:主页-需求-指派需求-选中测试树中的一个测试用例(左侧)-选中需求指派(包含有效需求和已指派的需求)需求-选中需求-可以查看需求覆盖情况为需求指派用例需求关联:主页-需求-指派需求-选中测试树中的一个测试用例(左侧)-选中需求指派(包含有效需求和已指派的需求)需求-选中需求-可以查看需求覆盖情况创建测试计划测试计划是执行测试用例的基础,测试计划由测试用例组成主页-测试计划管理-创建(测试基本完成)创建测试里程碑:(明确每个测试阶段的开始与结束时间)-测试管理-编辑/删除里程碑版本管理(Builds/Release)(本版本叫构建管理):主页-测试计划管理-构建管理安排测试人员:测试计划管理-指派用户角色为计划添加用例添加测试用例到测试计划:选择当前测试计划(列表)-选择添加/删除测试用例到测试计划选择测试集(左侧)-选择用户、构建、测试用例-添加选择的测试用例(成功变色、也可删除)指派执行测试用例-选中左侧测试集-执行测试/报告BUG并跟踪执行测试查看分析结果测试报告:结果-报告格式-MS word1.T estlink问题:2.设置测试用例的所有者(给测试人员分派测试任务)(找不到)3.实验一需要和mantis集成吗?(到实验mantis的时候再集成)4.怎样为产品分配背景颜色?(不用管)5.逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。

【Python】实现将Excel编写的用例上传到testlink指定用例集

【Python】实现将Excel编写的用例上传到testlink指定用例集

【Python 】实现将Excel 编写的⽤例上传到testlink 指定⽤例集此功能已优化:百科上说TestLink 是基于web 的测试⽤例管理系统,主要功能是测试⽤例的创建、管理和执⾏,并且还提供了⼀些简单的统计功能。

其他的信息可以参照他们的官⽹/。

楼主所在的项⽬,需求、提测、测试等等都是使⽤的是gitlab 的⼀个个issue 加标签管理的,⽤例的维护在开始的时候也是⽤的它。

后来我们的直接上级职位发⽣了变更,新leader 建议我们使⽤testlink 。

试⽤了⼀段时间之后,发现⼀个⾮常令⼈诟病的地⽅--⽤例导⼊只⽀持xml 格式,⽽且它本⾝的⽤例编写也不太⽅便。

这也是我写这个⽤例导⼊⼩⼯具的初衷。

开始时博主想的是,把Excel 编写的⽤例(Excel 应该是所有测试⼈员编写⽤例的⾸选吧)转换为xml 格式导⼊,后来发现更好的办法-封装Python testlink API 。

写得⽐较仓促,还有很多可以改进的地⽅,先⽤起来,后续优化。

环境依赖环境依赖安装⽅法Python3略xlrd 库pip install xlrdtestlink 库pip install TestLink-API-Python-client⽬录结构⽬录结构如下,testCase ⽬录⽤于存放测试⽤例,upload_excel_data.py ⽤于⽤例转换上传,logger_better.py ⽤于记录⽇志,。

D:\PROJECT\UPLOAD_DATA2TESTLIN│ logger_better.py│ upload_excel_data.py│└─testCase testCase_Example.xlsx使⽤⽅法登陆testlink 后点击上⽅个⼈账号进⼊个⼈中⼼,新页⾯点击'⽣成新的秘钥',使⽤该key 替换掉upload_excel_data.py ⽂件中的key 值;使⽤get_projects_info 函数获取项⽬所在project_id ,替换掉upload_excel_data.py 中的project_id使⽤⿏标选中想要上传⽤例的⽤例集,点击右键获取⽗节点ID ,替换掉upload_excel_data.py 中的father_id upload 内容#! /usr/bin/python# coding:utf-8"""@author:Bingo.he 背景思路具体实现@file: upload_excel_data.py@time: 2018/05/03"""import collectionsimport testlinkimport xlrdimport osfrom logger_better import Loglogger = Log(os.path.basename(__file__))count_success = 0count_fail = 0def get_projects_info():project_ids = []projects = tlc.getProjects()for project in projects:project_ids.append({project['name']: project['id']})return project_idsdef get_projects_id():project_ids = []projects = tlc.getProjects()for project in projects:project_ids.append(project['id'])return project_idsdef get_suites(suite_id):"""获取⽤例集:return:"""try:suites = tlc.getTestSuiteByID(suite_id)return suitesexcept testlink.testlinkerrors.TLResponseError as e:# traceback.print_exc()logger.warning(str(e).split('\n')[1])logger.warning(str(e).split('\n')[0])returndef readExcel(file_path):"""读取⽤例数据:return:"""case_list = []try:book = xlrd.open_workbook(file_path) # 打开excelexcept Exception as error:logger.error('路径不在或者excel不正确 : ' + str(error))return errorelse:sheet = book.sheet_by_index(0) # 取第⼀个sheet页rows = sheet.nrows # 取这个sheet页的所有⾏数for i in range(rows):if i != 0:case_list.append(sheet.row_values(i)) # 把每⼀条测试⽤例添加到case_list中return case_listdef check_excel_data(func):"""参数有效性校验:param func::return:"""def _check(*args, **kw):global count_failglobal count_success# 校验项⽬ID及测试集ID的有效性if not args[0] in get_projects_id():logger.error('project_id is not auth')returnif not get_suites(args[1]):logger.error('father_id is not auth')return# 检测测试数据的有效性for k, v in kw.items():if v == "" and k not in ['summary', 'importance']:logger.warning("TestCase '{title}' Parameter '{k}' is null".format(title=kw['title'], k=k))try:func(args[0], args[1], kw)count_success += 1except Exception as e:logger.error(e)count_fail += 1return _checkdef format_info(source_data):"""转换Excel中⽂关键字:param source_data::return:"""switcher = {"低": 1,"中": 2,"⾼": 3,"⾃动化": 2,"⼿⼯": 1}return switcher.get(source_data, "Param not defind")@check_excel_datadef create_testcase(test_project_id, suits_id, data):""":param test_project_id::param suits_id::param data::return:"""# 设置优先级默认值及摘要默认值if data['importance'] not in [1, 2, 3]:data['importance'] = 3if data["summary"] == "":data["summary"] = "⽆"# 初始化测试步骤及预期结果for i in range(0, len(data["step"])):tlc.appendStep(data["step"][i][0], data["step"][i][1], data["automation"])tlc.createTestCase(data["title"], suits_id, test_project_id, data["authorlogin"], data["summary"],preconditions=data["preconditions"], importance=data['importance'], executiontype=2)def excute_creat_testcase(test_project_id, test_father_id, test_file_name):# 对project_id father_id 做有效性判断if test_project_id not in get_projects_id():logger.error('project_id is not auth')returnif not get_suites(test_father_id):logger.error('father_id is not auth')return# 获取⽤例test_cases = readExcel(os.path.join('testCase', test_file_name))if not isinstance(test_cases, collections.Iterable):return# 格式化⽤例数据for test_case in test_cases:testCase_data = {"title": test_case[0],"preconditions": test_case[1],"step": list(zip(test_case[2].split('\n'), test_case[3].split('\n'))), # 以换⾏符作为测试步骤的分界"automation": format_info(test_case[4]), # 1 ⼿⼯, 2 ⾃动"authorlogin": test_case[5],"importance": format_info(test_case[6]),"summary": test_case[7]}create_testcase(test_project_id, test_father_id, **testCase_data)("本次操作共提交 {} 条数据,成功导⼊ {} 条,失败 {} 条".format(count_success + count_fail, count_success, count_fail))if __name__ == "__main__":url = "http://localhost/testlink/lib/api/xmlrpc/v1/xmlrpc.php" # 替换为testlink对应URLkey = "3aca080de61e3e24b5be209a23fa0652" # 这个key是错误的key,登陆testlink后点击上⽅个⼈账号进⼊个⼈中⼼,新页⾯点击 '⽣成新的秘钥'获取 file_name = "testCase_Example.xlsx"project_id = "2354879" # 可以通过 print(get_projects_info())获取father_id = "2054879" # ⿏标选中想要上传⽤例的⽤例集,点击右键获取⽗节点IDtlc = testlink.TestlinkAPIClient(url, key)# print("项⽬信息: ", get_projects_info())excute_creat_testcase(project_id, father_id, file_name)logger内容#! /usr/bin/python# coding:utf-8"""@author:Bingo.he@file: logger_better.py@time: 2018/02/12"""import loggingimport timeimport oscur_path = os.path.dirname(os.path.realpath(__file__))log_path = os.path.join(cur_path, 'logs')if not os.path.exists(log_path): os.mkdir(log_path)class Log():def __init__(self, logger, logname='{}.log'.format(time.strftime('%Y-%m-%d'))):self.logname = os.path.join(log_path, logname)self.logger = logging.getLogger(logger)self.logger.setLevel(logging.DEBUG)self.formatter = logging.Formatter('[%(asctime)s]-[%(name)s]-%(levelname)s: %(message)s')def __console(self, level, message):fh = logging.FileHandler(self.logname, 'a', encoding='utf-8')fh.setLevel(logging.DEBUG)fh.setFormatter(self.formatter)self.logger.addHandler(fh)ch = logging.StreamHandler()ch.setLevel(logging.DEBUG)ch.setFormatter(self.formatter)self.logger.addHandler(ch)if level == 'info':(message)elif level == 'debug':self.logger.debug(message)elif level == 'warning':self.logger.warning(message)elif level == 'error':self.logger.error(message)self.logger.removeHandler(ch)self.logger.removeHandler(fh)fh.close()def debug(self, message):self.__console('debug', message)def info(self, message):self.__console('info', message)def warning(self, message):self.__console('warning', message)def error(self, message):self.__console('error', message)if __name__ == "__main__":log = Log(os.path.basename(__file__))("---测试开始----")("操作步骤1,2,3")log.warning("----测试结束----")其他:⽤例步骤分隔符:当前使⽤换⾏符分隔,可修改excute_creat_testcase函数中testCase_data的step参数Excel中作者信息必须与提供的key值对应测试⽤例格式在此感谢该API的作者。

Excel中测试用例导入Testlink方法

Excel中测试用例导入Testlink方法

Excel中测试用例导入T estlink方法现在我们的测试用例基本都是在excel中撰写的,一些已存在的测试用例大部分也是以excel表格的形式存在的。

如何将excel中的测试用例导入到testlink数据库中呢?使用复制和粘贴固然可以,但是那样做确实辛苦并且很低效,现在介绍将excel表格中的数据导入到testlink中的方法。

导入的方法分为两步1、制作XML文档2、导入XMl文档1.1. 制作XML文档Testlink导入数据时只接受*.xml格式的文件,所以第一步要做的是,制作符合testlink 格式要求的xml格式的文档,制作方法有两种。

下面分别介绍一下1.1.1.制作XML文档方法1Step1:首先从testlink中导出一个或多个xml文档,以获得满足testlink要求的XMl格式。

如:选择图片浏览,选择export test case(s)Step2:将导出文件保存。

testcases.xml的文件保存。

Step3:打开一个空白表格文档,打开菜单:数据/XML/导入,将保本的testcase.xml导入Step4:在选择数据放置的位置时,选择现有的工作表的xml列表。

下面的表格中添入$A$1,然后确定。

Step5:这样我们可以得到类似下面的文档,在文档的左端是我们设计的用例,主要是name、summary 、steps和expected results。

右边显示的是该文档的树形格式XML映射。

Step6:现在我们可以在这个深成的表格上编辑我们的用例了,在编辑完之后选择令存为*.xml格式就可以了。

Step7:在保存之后,打开文档档检查一下,文档的格式应与下图类似。

这样我们就可以导入了。

1.1.2.制作XML文档方法二:方法一首先是设计好一个模版,在模版上输入数据来保存的。

适用于还没有编辑测试用例的情况。

那么如果已经把测试用例保存为一个普通的*.xls格式的文档了,该如何导入呢?是不是要复制、粘贴到上面制造好的模版里呢?答案当然是否定的,下面介绍另一种把已存在的.xls文档制作为*.xml文档的方法。

testlink用例的导出到Excel

testlink用例的导出到Excel

testlink⽤例的导出到Excel⼀直在⽹上寻找怎么把testlink的⽤例导出到Excel中,以及把Excel中已经写好的⽤例导⼊到Testlink中的⽅法。

根据现⽹的经验,然后修改了⼀下。

贴出来,以飨有这⽅⾯需求的测试同仁。

Testlink版本为1.9.16,导出的⽤例⽬录最⼤⽀持两层,导出的Excel⽂件以xlsx结尾,必须有Sheet1这⼀页。

导出的格式应该是这个样⼦的⼀级⽬录⼆级⽬录⽤例名称⽤例编号⽤例概要预置条件操作步骤预期结果⽤例集1⽤例集1-1测试⽤例11测试⽤例1前提步骤1步骤2期望1期望2python⽂件 tcexport.py,testlink⽤例的导出#coding=utf-8from xml.etree import ElementTreefrom win32com.client import Dispatchimport win32com.clientimport sys,osdef ChangeReturnKeyInString(str):retStr = str.strip().replace('<p>','')retStr = retStr.replace('</p>','\n')return retStrclass easy_excel:def__init__(self,filename=None):self.xlApp=win32com.client.Dispatch('Excel.Application') if filename:self.filename=filenameself.xlBook=self.xlApp.Workbooks.Open(self.filename) else:self.xlBook=self.xlApp.Workbooks.Add()self.filename=''def save(self,newfilename=None):if newfilename:self.filename=newfilenameself.xlBook.SaveAs(newfilename)else:self.xlBook.Save()def close(self):self.xlBook.Close(SaveChanges=0)def getCell(self,sheet,row,col):sht=self.xlBook.Worksheets(sheet)return sht.Cell(row,col).Valuedef setCell(self,sheet,row,col,value):sht=self.xlBook.Worksheets(sheet)sht.Cells(row,col).Value=valuesht.Cells(row,col).HorizontalAlignment=3sht.Rows(row).WrapText=Truedef mergeCells(self,sheet,row1,col1,row2,col2):sht=self.xlBook.Worksheets(sheet)sht.Range(sht.Cells(row1,col1),sht.Cells(row2,col2)).Merge() def setBorder(self,sheet,row,col):sht=self.xlBook.Worksheets(sheet)sht.Cells(row,col).Borders.LineStyle=1def set_col_width(self,sheet):sht=self.xlBook.Worksheets(sheet)sht.Columns("E:H").ColumnWidth=30if__name__ =='__main__':if (len(sys.argv) == 1):print("Please specified a xml file")os.system("pause")sys.exit(0)else:tmpInFile = os.getcwd()+"\\"+sys.argv[1]inFile = tmpInFileif not tmpInFile.endswith(".xml"):outFile = tmpInFile + "-tcexp.xlsx"inFile = tmpInFile + ".xml"else:outFile = tmpInFile[:-4] +"-tcexp.xlsx"xls=easy_excel()xls.setCell('Sheet1',1,1,u"⼀级⽬录")xls.setCell('Sheet1',1,2,u"⼆级⽬录")xls.setCell('Sheet1',1,3,u"⽤例名称")xls.setCell('Sheet1',1,4,u"⽤例编号")xls.setCell('Sheet1',1,5,u"⽤例概要说明")xls.setCell('Sheet1',1,6,u"预置条件")xls.setCell('Sheet1',1,7,u"操作步骤")xls.setCell('Sheet1',1,8,u"预期结果")xls.set_col_width('Sheet1')tree=ElementTree.parse(inFile)root = tree.getroot()row_flag=1#⼀级⽬录for sub1Testsuite in root.findall("testsuite"):sub1SuiteId = sub1Testsuite.get("id")sub1SuiteName = sub1Testsuite.get("name")for sub1TestCase in sub1Testsuite.findall("testcase"):row_flag = row_flag + 1sub2SuiteName = ""title = sub1TestCase.get("name")externalid = sub1TestCase.find("externalid").textsummary = ChangeReturnKeyInString(sub1TestCase.find("summary").text)preconditions = ChangeReturnKeyInString(sub1TestCase.find("preconditions").text) xls.setCell('Sheet1',row_flag,1,sub1SuiteName)xls.setCell('Sheet1',row_flag,2,sub2SuiteName)xls.setCell('Sheet1',row_flag,3,title)xls.setCell('Sheet1',row_flag,4,externalid)xls.setCell('Sheet1',row_flag,5,summary)xls.setCell('Sheet1',row_flag,6,preconditions)stepsNode=sub1TestCase.find("steps")actions = ""expectedresults = ""for stepNode in stepsNode.findall("step"):step_number = stepNode.find('step_number').textactions = actions+stepNode.find('actions').text.strip()expectedresults = expectedresults + stepNode.find('expectedresults').text.strip() actions = ChangeReturnKeyInString(actions)expectedresults = ChangeReturnKeyInString(expectedresults)xls.setCell('Sheet1',row_flag,7,actions)xls.setCell('Sheet1',row_flag,8,expectedresults)for sub2Testsuite in sub1Testsuite.findall("testsuite"):sub2SuiteId = sub2Testsuite.get("id")sub2SuiteName = sub2Testsuite.get("name")for sub2TestCase in sub2Testsuite.findall("testcase"):row_flag = row_flag + 1title = sub2TestCase.get("name")externalid = sub2TestCase.find("externalid").textsummary = ChangeReturnKeyInString(sub2TestCase.find("summary").text)preconditions = ChangeReturnKeyInString(sub2TestCase.find("preconditions").text) xls.setCell('Sheet1',row_flag,1,sub1SuiteName)xls.setCell('Sheet1',row_flag,2,sub2SuiteName)xls.setCell('Sheet1',row_flag,3,title)xls.setCell('Sheet1',row_flag,4,externalid)xls.setCell('Sheet1',row_flag,5,summary)xls.setCell('Sheet1',row_flag,6,preconditions)actions = ""expectedresults = ""stepsNode=sub2TestCase.find("steps")for stepNode in stepsNode.findall("step"):step_number = stepNode.find('step_number').textactions =actions + stepNode.find('actions').textexpectedresults = expectedresults + stepNode.find('expectedresults').textactions = ChangeReturnKeyInString(actions)expectedresults = ChangeReturnKeyInString(expectedresults)xls.setCell('Sheet1',row_flag,7,actions)xls.setCell('Sheet1',row_flag,8,expectedresults)for row in range(2,row_flag):for col in range(1,9):xls.setBorder('Sheet1',row,col)xls.save(outFile)xls.close()print("finished.")sys.exit(0)使⽤⽅法:在Excel⽤例⽂件所在的⽬录⾥,shift+⿏标右键,打开⼀个cmd窗⼝,输⼊如下命令:假设py脚本在D盘python D:\tcimport.py testproject-deep.xml。

testlink用法

testlink用法

testlink用法
testlink是一个开源的测试管理工具,主要用于测试计划、测试用例、测试执行和测试报告的管理。

下面是testlink的用法介绍: 1. 创建项目
在testlink中,首先需要创建一个项目。

在“项目管理”中,可以添加项目,填写项目名称、项目描述和负责人等信息。

2. 创建测试计划
在项目中,可以创建测试计划。

在“测试计划”中,可以添加测试计划,设置测试计划的名称、描述、开始时间和结束时间等信息。

3. 创建测试用例
在项目中,可以创建测试用例。

在“测试用例”中,可以添加测试用例,填写测试用例的名称、描述、步骤和期望结果等信息。

4. 创建测试套件
在项目中,可以创建测试套件。

在“测试套件”中,可以添加测试套件,将多个测试用例组织在一个测试套件中,方便管理和执行。

5. 执行测试用例
在测试计划中,可以执行测试用例。

在“测试执行”中,可以选择测试计划和测试套件,执行测试用例,并记录测试结果和缺陷信息。

6. 生成测试报告
在测试计划中,可以生成测试报告。

在“测试报告”中,可以选择测试计划和测试套件,生成测试报告,并查看测试结果、缺陷统计和测试用例覆盖率等信息。

总结
testlink是一个功能强大的测试管理工具,可以帮助测试团队有效地管理测试计划、测试用例、测试执行和测试报告。

熟练掌握testlink的用法,可以提高测试效率和测试质量。

TestLink1.9.3测试用例:Excel转换XML工具一

TestLink1.9.3测试用例:Excel转换XML工具一

TestLink1.9.3测试⽤例:Excel转换XML⼯具⼀ 最近在整理测试⽤例,所以想找⼀个合适的⼯具来完成对测试需求、测试⽤例的管理。

对⽐了⼀翻,发现开源⼯具中扩展⽐较好的还属TestLink,⽽且还可以与JIRA进⾏对接,这样就引起了我更⼤的兴趣。

加上之前本来就接触过此⼯具,只是源于各种原因没能深⼊去研究来着,这次也就是决⼼于此!于是就找来了Testlink的最新版1.9.3,将其搭建在Ubuntu Server上,很快我们就可以正常⽅访问了。

不过说实话,Testlink界⾯确实很难看,不过毕竟它不是商业⼯具,⽽且可以⾃⼰去扩展并定制开发,这就是最⼤的优点了。

Testlink平台完成之后,接下来就要⾯临的是测试⽤例的管理,⾯临⼤量的测试⽤例excel表格,当然最便捷的就是能够快速的通过导⼊⽅式将所有的⽤例都导⼊到Testlink中,不过即便⾛到这⼀步,才发现原来开源的软件真是可爱有可恨。

虽然1.9.3版本中导⼊⽤例选项中提供了XML和XLS两种格式来导⼊,但试过之后发现XLS格式导⼊excel,并不能导⼊成功,⾄于为何导不成功,我想基本是我们⾃⼰的excel ⽂档格式与testlink内部定义不⼀致导致的,与其去研究他哪些格式不对,还不如尝试另⼀种⽅式XML导⼊。

说到这⾥,便⽴刻去⽹上翻了⼀翻,发现没有现成可以⽤的⼯具以及⽅法,即便有⼀个,居然还是收费的~其实,Excel转换XML,基本思路都差不多,也就是将Excel单元格的数据取出来,然后通过⼀些拼凑,成为与XML格式⼀致,然后⽣成XML即可,不过这个中间的转换还是⽐较⿇烦的,基本步骤如下: 1、⾸先,在Testlink中⼿动编写⼀个测试⽤例 2、然后,将刚才编写的⽤例导出⼀份XML格式 3、通过编辑⼯具打开XML⽂件,取其格式 4、通过脚本读取Excel⽂件以及单元格的内容 5、接着将读取的Excel单元格内容对应XML格式进⾏拼接,完成符合XML的格式 6、最后⽣成XML⽂件思路基本上就是这样了,经过⼀番周折,我这⾥通过VBS来模拟完成了此过程,⽽且还有辅助界⾯,这样避免了因为不同⽂件不同路径⽽需要每次都修改源代码,界⾯基本实现如下: 1、先获取⽂件,这⾥需要输⼊绝对的⽂件路径和名称,如下图: 2、按照如上步骤,确定之后,需要输⼊读取的Excel中⽬标表格的名称,如下图: 3、接着以上步骤,确定之后,需要输⼊转换之后的XML⽂件保存的路径以及名称,如下图: 4、确定后待转换结束,会给出提⽰,并提⽰总共完成多少条数据的转换,如下图所⽰: 基本上通过如上四个步骤就能快速完成Excel转换XML,然后就可以通过转换之后的XML格式的⽂件导⼊TestLink的测试⽤例中,如果导⼊成功,则说明脚本正确地完成此了此功能~ 下⼀章节中将会详细介绍代码的实现,并贴出源代码~。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Excel测试用例导入到Testlink方法
---以Java模块为例
1.建组件
选中项目或组件,选择[New child Test Suite],输入Test Suite Name后保存。

注意:Test Suite Name跟Excel名称一致,如下图:
组件及分类层次跟Excel格式的用例层次对应,如下图:
2.制作XML导入文件,Testlink导入数据时只接受*.xml格式的文件
a)所需文档:
i.Excel测试用例导入到TestLink模板.xml;
ii.需要导入的Excel用例。

b)制作XML文档步骤:
Step1: 打开“Excel测试用例导入到TestLink模板.xml”;
字段说明:
Name:用例编号;
Summary:预置条件;
Steps: 测试步骤;
Expectedresults: 预期结果;
Name2:测试级别。

Step2: 打开“[SN_SW_TEST_002_007_01]test case_Java_v0.1.xls”excel用例;
Step3: 拷贝excel用例中的预置条件,测试步骤,预期结果和测试级别的内容到step1中的模板中,Name的命名规则以当前所属sheet_编号,如:Java_1.1.1.1;编辑完后的模板内容如下:
Step4: 保存模板文件为XML数据.xml格式文件;
Step5:导入刚保存的XML文件到对应的test suite;
Step6 :检查导入是否成功。

3.注意点
映射的范围必须刚好覆盖所有用例,如果映射之外有用例,那么将不能导入到TestLink中;如
果映射中有多余N条空行,那么TestLink中将会多出N条空的用例。

相关文档
最新文档