2017-03-27 139 views
-1

curently C:\ xampp \ htdocs \ testcases \ MySelenium> phpunit --verbose --log-tap tap.log LoginTest.php 通過這個命令我可以得到結果文本文件, ,但我想通過使用phpunit框架在excel文件的結果如何導出硒webdriver phpunit測試結果到excel文件

+0

請閱讀[問]。請提供您嘗試過的代碼和執行結果,包括任何錯誤消息等。爲什麼使用selenium-webdriver標記此問題?將數據寫入Excel文件不涉及Selenium。你最好打賭它可能寫入CSV,然後在Excel中打開。 – JeffC

+0

我有selenium-webdriver becase我想在excel文件中使用selenium testcase執行報告。 –

回答

0
// download phpexcel by composer and make file as below 
<?php 


/** 
* Description of General 
* 
* @author suchishah 
*/ 
date_default_timezone_set('Asia/Kolkata'); 

class General { 

    protected static $objPHPExcel; 
    protected static $highestRow; 
    protected static $filename; 

    //put your code here 
    public function createExcelReport11($fname) { 
     /* @var $objPHPExcel type */ 
     self::$objPHPExcel = new PHPExcel(); 
     self::$filename = $fname; 
// Set properties 
     echo date('H:i:s') . " Set properties\n"; 
     self::$objPHPExcel->getProperties()->setCreator("Suchi Shah") 
       ->setLastModifiedBy("Suchi Shah") 
       ->setTitle("Test Case Report") 
       ->setSubject("Excelsheet for testcase report") 
       ->setDescription("Excel file contains testcase name,method name and all ") 
       ->setKeywords("office 2007 openxml php") 
       ->setCategory("Test result file"); 


     //Add some data 
     echo date('H:i:s') . " Add some data\n"; 
     self::$objPHPExcel->setActiveSheetIndex(0) 
       ->setCellValue('A1', self::$filename)->mergeCells('A1:F1') 
       ->setCellValue('A2', 'Action') 
       ->setCellValue('B2', 'method') 
       ->setCellValue('C2', 'DateTime') 
       ->setCellValue('D2', 'Action pefromed') 
       ->setCellValue('E2', 'Data Used') 
       ->setCellValue('F2', 'Data Get') 
       ->setCellValue('G2', 'Assertion') 
       ->setCellValue('H2', 'Exe.Time(s)') 
     ; 
     foreach (range('A', 'F') as $columnID) { 
      self::$objPHPExcel->getActiveSheet()->getColumnDimension($columnID) 
        ->setAutoSize(true); 
     } 

     echo date('H:i:s') . " Rename sheet\n"; 
     self::$objPHPExcel->getActiveSheet()->setTitle('Simple'); 


// Set active sheet index to the first sheet, so Excel opens this as the first sheet 
     self::$objPHPExcel->setActiveSheetIndex(0); 


// Save Excel 2007 file 
     echo date('H:i:s') . " Write to Excel2007 format\n"; 
     $objWriter = PHPExcel_IOFactory::createWriter(self::$objPHPExcel, 'Excel2007'); 
     $objWriter->save(str_replace('.php', '.xlsx', __FILE__)); 


// Echo memory peak usage 
     // echo date('H:i:s') . " Peak memory usage: " . (memory_get_peak_usage(true)/1024/1024) . " MB\r\n"; 
// Echo done 
     echo date('H:i:s') . " Done writing file.\r\n"; 
     $highestColumm = self::$objPHPExcel->setActiveSheetIndex(0)->getHighestColumn(); 
     echo '  ' . $highestColumm . '  highest colum'; 
     self::$highestRow = self::$objPHPExcel->setActiveSheetIndex(0)->getHighestRow(); 
     echo self::$highestRow . ' rowh'; 
    } 

    public function writeData($action, $method, $performedon, $dataused,$dataget,$assert, $interval) { 
     self::$objPHPExcel->setActiveSheetIndex(0) 
       ->setCellValueByColumnAndRow('0', self::$highestRow + 1, $action) 
       ->setCellValueByColumnAndRow('1', self::$highestRow + 1, $method) 
       ->setCellValueByColumnAndRow('2', self::$highestRow + 1, date('m/d/Y h:i:s a', time())) 
       ->setCellValueByColumnAndRow('3', self::$highestRow + 1, $performedon) 
       ->setCellValueByColumnAndRow('4', self::$highestRow + 1, $dataused) 
       ->setCellValueByColumnAndRow('5', self::$highestRow + 1, $dataget) 
       ->setCellValueByColumnAndRow('6', self::$highestRow + 1, $assert) 
       ->setCellValueByColumnAndRow('7', self::$highestRow + 1, $interval); 
// Call callback method 
     self::$highestRow = self::$highestRow + 1; 
     // echo self::$highestRow; 
     $objWriter = PHPExcel_IOFactory::createWriter(self::$objPHPExcel, 'Excel2007'); 
     $a = 'Log' . self::$filename . date("Y-m-d") . '.xlsx'; 
     $objWriter->save($a); 
    } 
} 

// include that file in the test case for which you want to generate report by 
// create its object 
<?php 

require_once '../vendor/phpexcel/phpexcel/Classes/PHPExcel.php'; 
require_once 'General.php'; 

class Sample extends PHPUnit_Extensions_Selenium2TestCase { 

    private $data = array(
     'username' => 'me' 
    ); 
    private static $highestRow; 
    private static $lib_obj; 

    public static function setUpBeforeClass() { 
     self::shareSession(true); 
     self::$lib_obj = new General(); 
     self::$lib_obj->createExcelReport11(__CLASS__); 
    } 

    // set url you want to visit 

    public function testSetUserName() { 
     $start = time(); 
     $this->byId('username')->value($this->data['username']); 
     $end = time(); 
     $a = $end - $start; 
     self::$lib_obj->writeData('setvalue', __FUNCTION__, 'username', $this->data['username'], '', '', $a); 
    } 

}