`

JIRA 4.2.4数据导入到Mantis1.2.15测试用例(初步)

 
阅读更多

JIRA 4.2.4数据导入到Mantis测试用例(初步):

package com.capitalbio.soft.test.bug;

import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.concurrent.atomic.AtomicInteger;

import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.lang3.StringUtils;
import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.PreparedStatementCreator;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.jdbc.support.KeyHolder;

public class JiraToMantisTest {
	private static String driverName = "com.mysql.jdbc.Driver";
	private static String url_jira = "jdbc:mysql://192.168.6.250:3306/jira?useUnicode=true&characterEncoding=utf-8";
	private static String url_mantis = "jdbc:mysql://192.168.6.250:3306/mantis_jira?useUnicode=true&characterEncoding=utf-8";
	private static String user = "root";
	private static String password = "root";
	/*
	static {
		try {
			Class.forName(driverName);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}  
	*/
	public static BasicDataSource getDataSource(String url) {
		BasicDataSource dataSource = new BasicDataSource();
		
		dataSource.setDriverClassName(driverName);
		dataSource.setUrl(url);
		dataSource.setUsername(user);
		dataSource.setPassword(password);
		
		return dataSource;
	}
	
	@Test public void testJiraToMantis() {
		final JdbcTemplate jiraJdbcTemplate = new JdbcTemplate(getDataSource(url_jira));
		final JdbcTemplate mantisJdbcTemplate = new JdbcTemplate(getDataSource(url_mantis));
		String sql = "select * from jiraissue ";
		final String insert_mantis_bug_table_sql = "INSERT INTO mantis_bug_table ( project_id, reporter_id, handler_id, duplicate_id, priority, severity, reproducibility, STATUS, resolution, projection, eta, bug_text_id, os, os_build, platform, VERSION, fixed_in_version, build, profile_id, view_state, summary, sponsorship_total, sticky, target_version, category_id, date_submitted, due_date, last_updated ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);";
		final String insert_mantis_bug_text_table_sql = "INSERT INTO mantis_bug_text_table (description, steps_to_reproduce, additional_information) VALUES (?, '', '')";
		final AtomicInteger total = new AtomicInteger(0);
		jiraJdbcTemplate.query(sql, new RowMapper<Object>(){
			@Override public Object mapRow(ResultSet rs, int idx) throws SQLException {
				final String description = null!=rs.getString("description") ? rs.getString("description") : "";
				KeyHolder keyHolder = new GeneratedKeyHolder();
				mantisJdbcTemplate.update(new PreparedStatementCreator() {
					@Override public PreparedStatement createPreparedStatement(Connection conn) throws SQLException {
						PreparedStatement ps = conn.prepareStatement(insert_mantis_bug_text_table_sql, Statement.RETURN_GENERATED_KEYS);
						ps.setString(1, description);
						return ps;
					}
				},keyHolder);
				Integer bug_text_id = keyHolder.getKey().intValue();
				/*.execute(String.format(insert_mantis_bug_text_table_sql,description), new PreparedStatementCallback<Integer>() {
					@Override public Integer doInPreparedStatement(PreparedStatement ps) throws SQLException, DataAccessException {
						ps.executeupdate
						ResultSet rs = ps.getGeneratedKeys();
						if(rs.next()) return rs.getInt(1);
						return null;
					}
				});*/
				
				BigDecimal proj_id = rs.getBigDecimal("PROJECT");
				int project_id = (10000==proj_id.intValue()) ? 1:2;
				Integer reporter_id = StringUtils.isNotBlank(rs.getString("reporter")) ? mantisJdbcTemplate.queryForInt("SELECT id FROM mantis_user_table WHERE username=?", rs.getString("reporter")) : null;
				Integer handler_id = StringUtils.isNotBlank(rs.getString("assignee")) ? mantisJdbcTemplate.queryForInt("SELECT id FROM mantis_user_table WHERE username=?", rs.getString("assignee")) : null;
				int duplicate_id = 0;
				int priority = 30;
				int severity = 50;
				int reproducibility = 10;
				int status = 90;
				int resolution = 20;
				int projection = 10;
				int eta = 10;
//				bug_text_id;
				String os = "";
				String os_build = "";
				String platform = "";
				String version = "";
				String fixed_in_version = "";
				String build = "";
				int profile_id = 0;
				int view_state = 10;
				String summary = rs.getString("summary");
				int sponsorship_total = 0;
				int sticky = 0;
				String target_version = "";
				int category_id = 1;
				String dateSubmitted = Long.toString(rs.getDate("CREATED").getTime());
				int date_submitted = Integer.parseInt(dateSubmitted.substring(0, dateSubmitted.length()-3)); //1379820334;
				int due_date = 1;
				String lastUpdated = Long.toString(rs.getDate("UPDATED").getTime());
				int last_updated = Integer.parseInt(lastUpdated.substring(0, lastUpdated.length()-3));//1379820334;
				
				total.addAndGet(mantisJdbcTemplate.update(insert_mantis_bug_table_sql, project_id, reporter_id, handler_id, duplicate_id, priority, severity, reproducibility, status, resolution, projection, eta, bug_text_id, os, os_build, platform, version, fixed_in_version, build, profile_id, view_state, summary, sponsorship_total, sticky, target_version, category_id, date_submitted, due_date, last_updated));
				return null;
			}
		});
		System.out.println("----------------" + total.get());
	}
	
	@Test public void testDate() {
//		1384926801922 //		1384926882
		String ret = Long.toString(new Date().getTime());
		System.out.println(ret.substring(0, ret.length()-3));
	}

}

 

分享到:
评论

相关推荐

    jira批量导入用例工具

    jira批量导入用例工具

    JIRA测试用例创建以及关联Strory故事操作指南.pdf

    它涉及到在JIRA中进行测试计划、测试用例管理、缺陷跟踪、版本控制、团队协作等工作的综合管理。标签强调了JIRA在测试管理和工程管理方面的应用。 通过上述详细的知识点介绍,可以全面了解如何在JIRA中进行测试用例...

    (50条消息) 测试用例管理工具SynapseRT(jira插件)的具体使用(一)_Iam玉米的博客-CSDN博客_jira测试用例管理.mhtml

    (50条消息) 测试用例管理工具SynapseRT(jira插件)的具体使用(一)_Iam玉米的博客-CSDN博客_jira测试用例管理.mhtml

    测试用例设计:测试用例的基本概念 测试用例的设计和编写 测试用例评估 测试用例的管理

    最后,测试用例的管理涉及从创建到执行再到更新的整个生命周期。这包括版本控制,确保不同版本的测试用例与相应软件版本对应;优先级排序,决定哪些测试用例先执行;状态跟踪,记录每个测试用例的执行结果;以及维护...

    将xmind格式的测试用例导出到Excel

    将Xmind测试用例转为Excel,可以方便地集成到现有的项目管理工具中,如JIRA或Trello,提高团队协作效率。 "软件测试"是一个涵盖广泛的概念,包括单元测试、集成测试、系统测试和验收测试等。在这个过程中,测试用例...

    软件测试用例word模板

    在软件开发过程中,测试用例是确保产品质量的关键文档之一。软件测试用例Word模板提供了一种规范化的格式,用于详细记录测试步骤、预期结果以及实际结果,帮助测试人员系统地执行测试并评估软件功能的正确性。下面...

    维护测试用例.rar

    在实际操作中,可以使用电子表格、专门的测试管理工具(如JIRA、TestRail等)或者敏捷开发框架(如Scrum、Kanban)来维护测试用例。这些工具可以帮助跟踪用例的状态,记录每次执行的结果,并提供版本控制,以便历史...

    测试用例(含:设计及模板)

    - **等价类划分**:将输入数据划分到不同的等价类,只需为每个类选择一个代表性的测试用例。 - **边界值分析**:关注边界条件,因为它们往往是错误最易发生的地方。 - **因果图法**:通过因果关系图表来确定各种...

    测试用例的写法 培训模板 文件

    使用工具(如TestRail、JIRA等)进行测试用例的创建、组织、执行和维护,可以提高效率,确保测试流程的标准化。 总结,测试用例的编写是一项关键的软件质量保证活动,需要细致入微的思考和精心设计。通过本培训...

    机票信息管理系统测试用例

    在IT行业中,测试用例是确保软件质量的关键环节,尤其是对于机票信息管理系统这样的应用,它涉及到用户预订、查询、管理等多个重要功能。测试用例设计的目的在于全面验证系统的功能,确保其符合用户需求并能稳定运行...

    软件测试------测试用例—模板

    此外,测试用例管理工具如TestRail、Jira等可以帮助组织和跟踪测试用例,提高测试效率。 总结来说,测试用例是软件测试中的关键工具,它确保了软件的质量和稳定性。通过遵循一个详细的模板,可以有效地设计出覆盖...

    测试用例设计工具——checklist

    测试用例设计是软件质量保证的关键环节,Checklist是一款专为这一目的而设计的工具,旨在帮助测试工程师高效地创建、管理和执行测试用例。在本文中,我们将深入探讨Checklist的功能、使用方法以及它如何优化测试过程...

    测试用例文档(案例)

    在实际操作中,测试团队会依据这些测试用例执行测试,并通过工具如JIRA、TestRail等进行管理,跟踪每个用例的状态,直至所有问题解决,确保后台管理项目第一期功能的高质量交付。通过持续的测试迭代和优化,可以不断...

    这是测试用例测试用例

    1. 创建:使用专业的测试用例管理工具,如JIRA、TestRail等,便于组织和跟踪。 2. 执行:按优先级和关联性执行测试用例,记录结果。 3. 更新:随着软件迭代,及时更新测试用例以适应新功能。 4. 回归测试:每次修改...

    平时下载的软件测试用例

    使用专门的测试管理工具,如Jira、TestRail等,来组织、执行和跟踪测试用例,以实现高效管理。 6. **自动化测试用例**: 对于重复性高或执行时间长的测试用例,可以编写自动化脚本,利用工具如Selenium、Appium等...

    测试入门--1测试简介和测试用例

    测试用例是测试过程中的核心组成部分,它是描述如何对软件进行测试的一系列有序步骤,包括输入数据、预期结果以及执行这些步骤的条件。一个有效的测试用例应该具备可重复性、独立性和明确的结果判定标准。测试用例的...

    一步一步教你学写测试用例(1)

    在实际工作中,我们使用不同的工具来管理测试用例,如Excel、TestRail、Jira等,它们提供了模板和自动化功能,帮助我们高效地创建、组织和执行测试用例。 此外,我们还要了解不同的测试类型,如功能测试、性能测试...

    软件测试误区 软件测试用例 软件测试基础知识

    测试用例是描述如何对软件进行测试的一组条件或步骤,它包括输入数据、预期结果和执行步骤。设计有效的测试用例需要注意以下几点: 1. **全面性**:覆盖所有可能的输入情况和边界条件。 2. **独立性**:每个测试...

Global site tag (gtag.js) - Google Analytics