您的位置:軟件測試 > 開源軟件測試 > 開源測試管理工具 > Testlink
使用TestLink管理軟件測試過程
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2016/4/8 10:23:54 ] 推薦標(biāo)簽:測試管理工具 軟件測試工具

  清單 3. 上傳測試用例附件
  private static TestLinkAPI api = APIObject.getAPI();
  public static void testUpload(TestCase tc, String file, String title,
  String desc, String fileName, String fileType) {
  File attFile = new File(file);
  String fileContent = "";
  try {
  byte[] byteArray = FileUtils.readFileToByteArray(attFile);
  fileContent = new String(Base64.encodeBase64(byteArray));
  } catch (IOException e) {
  logger.error(e.getMessage(), e);
  }
  Attachment attachment = api.uploadTestCaseAttachment(
  tc.getId(), // 測試用例編號
  title, // 上傳附件的標(biāo)題
  desc, // 附件的描述信息
  fileName, // 附件的文件名稱
  fileType, // 上傳附件的 MIME 文件類型
  fileContent); // 附件的文件內(nèi)容
  logger.debug(" 附件上傳完成," + attachment.toString());
  }
  清單 3 的代碼是上傳附件到測試用例附件區(qū)的核心代碼,為了批量完成為多個(gè)用例分別上傳附件,需要在測試用例和需要上傳的本地附件文件做一個(gè)映射,循環(huán)調(diào)用清單 3 中的方法依次完成全部的附件上傳。具體的代碼實(shí)現(xiàn)留給讀者完成。
  需要注意的是,TestLink 的版本管理特性可以對測試用例進(jìn)行版本控制,但不支持對附件也做版本控制,即一個(gè)用例的所有版本都共享同樣的附件文件。如果讀者需要為用例的不同版本做自動(dòng)化測試,可以在上傳腳本文件時(shí)為文件名稱附加上版本信息。下載用例腳本文件時(shí),根據(jù)版本信息對腳本文件進(jìn)行過濾。本文假設(shè)所有的版本可以共享同一份腳本文件,隨時(shí)保持附件文件的更新即可。
  測試腳本文件下載
  通過完成上述操作,自動(dòng)化測試用例腳本文件已經(jīng)維護(hù)在 TestLink 測試用例附件區(qū)。在使用自動(dòng)化測試工具執(zhí)行計(jì)劃的測試用例之前,需要下載測試用例腳本文件到本地文件系統(tǒng),以方便自動(dòng)化測試工具對其進(jìn)行解析運(yùn)行。使用 TestLink 管理自動(dòng)化測試用例腳本的優(yōu)勢之一是,通過編寫簡單的代碼很容易完成腳本文件的下載。下載用例腳本文件的代碼見清單 4,為下載方法指定 TestCase tc 參數(shù),即可完成該測試用例的附件下載任務(wù)。代碼很簡單,首先根據(jù)測試用例實(shí)例 tc 獲取附件數(shù)組 atts,對數(shù)組進(jìn)行循環(huán),依次獲取附件 att 的文件名稱和文件內(nèi)容,并保存到本地工作目錄下的 UseCases 文件夾下。
  清單 4. 下載測試用例附件
  private static TestLinkAPI api = APIObject.getAPI();
  public static void getAttachments(TestCase tc) {
  String dir = System.getProperty("user.dir") + File.separator
  + "UseCases";
  File file = new File(dir);
  if (!file.exists()) {
  file.mkdirs();
  }
  Attachment[] atts = api.getTestCaseAttachments(tc.getId(), null);
  for (Attachment att : atts) {
  byte[] decoded = Base64.decodeBase64(att.getContent().getBytes());
  FileOutputStream fos;
  try {
  fos = new FileOutputStream(new File(dir + File.separator
  + att.getFileName()));
  logger.debug(" 測試用例附件保存為 =" + dir + File.separator
  + att.getFileName());
  fos.write(decoded);
  fos.close();
  } catch (FileNotFoundException e) {
  logger.error(e.getMessage(), e);
  } catch (IOException e) {
  logger.error(e.getMessage(), e);
  }
  }
  }
  測試腳本執(zhí)行
  下載完畢測試用例腳本文件,下一環(huán)節(jié)是使用自動(dòng)化測試工具執(zhí)行這些用例文件。關(guān)于如何運(yùn)行基于 XML 格式的自動(dòng)化測試用例,推薦讀者閱讀 IBM developerWorks 文章《使用 XML 維護(hù) Selenium 自動(dòng)化測試腳本》。測試用例執(zhí)行完畢,自動(dòng)化測試工具生成執(zhí)行日志信息、測試結(jié)果信息等。相應(yīng)測試用例的執(zhí)行結(jié)果狀態(tài),如 passed、failed、blocked 等,需要傳給下一環(huán)節(jié),用于自動(dòng)修改 TestLink 上測試用例的執(zhí)行結(jié)果狀態(tài),完成標(biāo)示結(jié)果的工作。
  回傳測試結(jié)果
  上述步驟中,通過使用第三方自動(dòng)化測試工具執(zhí)行完畢自動(dòng)化測試用例,收集到測試結(jié)果。下面需要進(jìn)行的是,通過編寫代碼自動(dòng)化地修改維護(hù)在 TestLink 上的自動(dòng)化測試用例的執(zhí)行結(jié)果狀態(tài)。代碼如清單 5 所示,運(yùn)行下面的代碼會(huì)自動(dòng)把 TestLink 中測試計(jì)劃下的測試用例在構(gòu)建"my build"上運(yùn)行的測試執(zhí)行結(jié)果標(biāo)記為"通過"。演示程序中,測試計(jì)劃編號等數(shù)據(jù)為硬編碼,讀者需要根據(jù)自己的情況去完善回傳測試結(jié)果的程序。如果運(yùn)行失敗,測試結(jié)果則標(biāo)為"失敗"狀態(tài),并和集成的缺陷管理系統(tǒng)進(jìn)行自動(dòng)化進(jìn)行缺陷數(shù)據(jù)同步。
  清單 5. 自動(dòng)上傳測試結(jié)果的代碼清單
  private static TestLinkAPI api = APIObject.getAPI();
  public static void testReport() {
  // 測試計(jì)劃
  Integer planID = 7;
  // 測試測試的構(gòu)建
  String buildName="my build";
  // 測試計(jì)劃
  Integer tcID = 3;       
  ReportTCResultResponse response = api.reportTCResult(tcID, null,
  planID, ExecutionStatus.PASSED, null, buildName,
  " 自動(dòng)化上傳結(jié)果的備注 ", null, null, null, null, null, null);
  logger.debug("response=" + response);
  }
  結(jié)束語
  通過上面對 TestLink 的介紹,我們了解到了如何基于 TestLink 管理自動(dòng)化測試過程。本文詳細(xì)介紹了基于 TestLink 的自動(dòng)化測試解決方案的核心實(shí)現(xiàn),分析了架構(gòu)流程圖并對主要的部分給出了代碼示例。關(guān)于如何使用 TestLink 管理功能測試過程,請參考本系列文章的第一部分。

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd