java的mac自動化-自動運行java程序
本文旨在幫助讀者介紹,如果一個測試工程師拿到了mac本,該如何在本地自動運行java代碼
首先如圖所示寫下如下一段代碼
package zlr;
import org.junit.Test;
public class zlrshiyan {
@Test
public void test123() throws Exception{
System.out.print (123);
}
}
所在文件的路徑是/Users/zlr/IdeaProjects/zlr/src/zlr,如下圖,本地代碼也可以正常運行
這時我們想到了和之前編寫的windows一樣,mac是否可以像windows一樣使用ant來自動執行呢?
1本地執行java程序代碼化
mac作為一款比windows更加貼近linux的操作系統,其定時任務當然是可以執行的,本文來簡單示範一下mac的定時任務
首先第一步要做的事是使用ant來執行上文的java程序,使用的ant是下文的ant代碼
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="junit and report" name="TestAuto">
<!--日期-->
<tstamp prefix="mydate">
<format property="day" pattern="yyyy-MM-dd"/>
<format property="time" pattern="HH:mm:ss"/>
<format property="dt" pattern="yyyy-MM-dd HH:mm:ss.SSS"/>
<format property="dt1" pattern="yyyyMMdd" offset="-1" unit="day" />
<format property="dt2" pattern="yyyyMMdd" offset="-3" unit="day" />
<format property="dt3" pattern="yyyyMMdd" offset="0" unit="day" />
<format property="dt4" pattern="yyyyMMddHHmmss" />
</tstamp>
<!--參數定義-->
<property name="appname" value="TestAuto"/>
<property name="build.dir" value="/Users/zlr/Desktop/autoTest" />
<property name="build.class.dir" value="${build.dir}/target/production/zlr/" />
<property name="build.lib.dir" value="${build.dir}/lib" />
<property name="build.report.dir" value="${build.dir}/report/${appname}_jenkins" />
<property name="build.report.name" value="jenkins" />
<property name="build.report.ip" value="10.10.81.108" />
<property name="build.report.remote" value="E:/apache-ant-1.9.4/bin/apache-tomcat-6.0.30/webapps/report" />
<target name="junit and report" depends=""
description="run test and send report">
<!-- 先刪除原有report文件夾 -->
<delete dir="${build.report.dir}" />
<!-- 再創建新report文件夾 -->
<mkdir dir="${build.report.dir}" />
<junit printsummary="on" fork="true" showoutput="true">
<sysproperty key="file.encoding" value="GBK" />
<formatter type="xml" usefile="true" />
<classpath>
<fileset dir="${build.lib.dir}" includes="*" />
<pathelement path="${build.class.dir}" />
</classpath>
<batchtest todir="${build.report.dir}">
<fileset dir="${build.class.dir}">
<include name="zlr/zlrshiyan.class"/>
</fileset>
</batchtest>
</junit>
<!-- 報告輸出路徑 -->
<junitreport todir="${build.report.dir}">
<fileset dir="${build.report.dir}">
<include name="TEST-*.xml" />
</fileset>
<report format="frames" todir="${build.report.dir}" />
</junitreport>
</target>
</project>
上文的ant要點和之前介紹的windows可以說很相近,所以不再贅述了,有興趣和疑問的同學可以去瀏覽http://www.cnblogs.com/xuezhezlr/p/7725301.html
這裏要介紹的是mac一個特點,就是java的安裝
如果使用正常的java安裝,會出現一個框然後自動安裝到系統的硬盤中,不過有個問題是不能輕易去訪問那個路徑,所以對它進行操作很困難
而ant調試過程中可以看到,全程沒有導入java的環境變量,只是依靠本地的java變量來實現的mac所以,對本機的java變量的控制變得異常重要,所以https://support.apple.com/kb/DL1572?locale=en_US&viewlocale=en_US這是我強烈推薦的java安裝地址,建議使用這個進行安裝
與windows比較大的區別是,windows使用.bat文件來執行ant命令,而mac則是使用.sh文件來執行ant,這也是mac筆記本比較類似linux的地方
下面是本地執行結果
2使用crontab來定時執行代碼
在手動執行後自然我們想到了自動執行代碼,由於mac在內核上與linux很相近,所以這裏介紹的是在linux上比較盛行的crontab來定時執行java代碼
輸入crontab -e,然後在出現的地方輸入我們的下面一行文字並保存
00 21 * * * source /Users/zlr/.bash_profile && /Users/zlr/Desktop/autoTest/runAnt.sh
保存記住,要使用wq!來做,這裏講一下這個語句
00 21 * * *這幾位是表示時間的,意思是每個滿足條件的時間點執行後面那一行shell語句
第1列表示分鐘1~59 每分鐘用*或者 */1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
而這裏的*是指這一種檢索條件可以忽略,比如上文中只有前兩列是不是*,那麽意思就是每天的晚上9點執行,http://blog.csdn.net/h514476785j/article/details/52512354這裏有比較詳細的解釋
但是java還一個特點就是環境變量,因此後面的語句是source /Users/zlr/.bash_profile && /Users/zlr/Desktop/autoTest/runAnt.sh
這句話的意思是,先執行source /Users/zlr/.bash_profile加載環境變量,在執行/Users/zlr/Desktop/autoTest/runAnt.sh來執行ant命令,中間用&&符號來鏈接,另一種方式是在runant中寫多條shell語句來執行
上文就是mac的簡單自動化了,各位加油,我研究一下jenkis如果有成果就發出來
java的mac自動化-自動運行java程序