用python做自動化測試--對Java代碼做單元測試 (1),python單元測試

來源:互聯網
上載者:User

用python做自動化測試--對Java代碼做單元測試 (1),python單元測試

      

  大多數時間我們說的python,指的是C實現的python, 在這篇文章裡,我們要說的是java實現的python,她的名字叫Jython, 大家可以到到官方網站http://www.jython.org/ 看看,最近2年很活躍,發布新版本比較多,其實我在jython 2.1版本的時候就開始接觸過,但當時看到社區不活躍,沒繼續學習應用下去。最近公司有幾個項目需要對外發布java 實現的API, java畢竟沒那麼熟悉,寫起API介面測試的代碼來速度還是沒那麼快, 還是高大上的python來的快, python太強大,強大到很乾任何事情,任何事情要寫代碼做的,我第一個想到的是用python去解決,然後我也沒有壓力,沒有太大動力去學習其他語言了,我不知道這是禍還是福。

     下面一個簡單例子說明怎麼對java代碼做單元測試。最近一個項目要實現一個唯一的ID,開發是用java的 SecureRandom實現的,話說很難出現重複,我還是想測測多大機率會出現重複,test_unique實現了這個單元測試代碼,其實是對SecureRandom方法的一個單元測試。test_max 加上這裡就是為了示範用而已。 


from java.security import SecureRandom
from java.lang import Math

這2個包都是JDk裡內建的方法,不是jython裡的,我們對這2個方法做測試。


#!/usr/bin/env jython#coding=utf8from java.security import SecureRandomfrom java.lang import Mathimport unittestimport timeimport sysclass UniqueRandomTest(unittest.TestCase):    def setUp(self):        self.start_time=time.time()        print "starting\n",         self.dic={}    def test_unique(self):        unique=False        for i in xrange(1,100000):            random=SecureRandom()            a=Math.abs(random.nextLong())            if self.dic.has_key(a):                unique=True                print "duplicate "                break            else:                self.dic[a]=1        self.assertEquals(unique,False)        def test_max(self):        self.assertEquals(Math.max(8,5),8)            def tearDown(self):        print "cost", time.time()-self.start_time," second"        print "end"
運行單元測試, 結果是

Finding files... done.
Importing test modules ... done.

starting
cost 0.000999927520752  second
end
starting
cost 1.85600018501  second
end
----------------------------------------------------------------------
Ran 2 tests in 2.043s

OK


做軟體的自動化測試一般用什工具?與黑箱測試工具一樣?用loadrunner怎?

一、對於你的問題,首先明確測試類型,然後才能明確自動化測試類型,最後定位哪個類型用哪個方面的自動化測試載入器
1、測試類型可以包括:白盒測試、黑箱測試(功能測試、效能測試)等。
2、不同的測試類型使用的自動化測試方法不同,白盒測試主要針對代碼級的單元測試、黑箱測試主要面對功能級和系統級的驗證測試。
3、自動化測試,針對白盒測試,一般需要有一定的編程基礎,即能夠基於功能代碼寫測試代碼,常用的單元測試方面的自動化測試載入器很多,上網一搜全是。
4、自動化測試,針對功能測試,有幾種情況,基於CLI、API和GUI的測試;基於CLI、API的測試,即應用指令碼技術向裝置類比發送CLI命令或者API請求,以達到控制裝置的效果。基於GUI功能測試,即應用傳統的介面自動化測試載入器(例如:RFT、QTP等)控制介面控制項操作的方法,以達到類比使用者操作,這幾種方式都需要你有一定的編碼基礎;基於CLI、API的需要你懂指令碼技術(例如:tcl、python、ruby等),RFT需要你懂java或者.net、QTP需要VB等。
5、你說的loadrunner就是效能測試方面的工具,即是測試軟體效能、例如多使用者操作等效能、也需要寫代碼,LR指令碼支援的語言有:java、c、Visual Basic、vbscrīpt。預設的指令碼產生語言為 C;其實我想說的是,效能測試工具不重要,你需要掌握其效能測試的方法才是更重要的。

二、我感覺你想入門自動化測試,但是從你問的問題來看,有一定盲目性,我簡單說一下自動化測試吧:
1、自動化測試,其理念就是應用各種手段類比人工操作,節省人力測試成本,保證產品測試品質。
2、你想學好自動化軟體測試,不是單單靠學習幾個自動化工具就能掌握的,但是你可以從工具入手,
首先,告訴你自動化測試的基礎是
1)編程技巧,包括進階語言和指令碼語言,指令碼語言是初期的掌握,可以有,tcl、phython、ruby等而進階語言,要好好學好一門,例如,我是對java為重點。還有,如果你是對web自動化測試的話,那麼jsp、php、HTML、CSS等web語言是必須掌握的。
2)作業系統技巧;因為軟體自動化測試是構建在作業系統上的,其技巧需要能善於利用到作業系統的各種技巧,例如:註冊表、環境變數、控制代碼等。
3)資料庫知識,要善於利用資料庫知識去儲存管理。
4)業務知識,這也是重點。你所在軟體行業的軟體業務,要知道你的軟體的工作方式。
5)品質與流程管理理念。
然後,你的學習步驟
1)可以從工具入手,根據具體的項目去學習;例如:java軟體介面測試(RFT、QTP的java外掛程式等)、web介面測試(QTP、selenium等)、效能測試(RPT、loadrunner等)。但記住,學習其工具,重點不是簡單的使用,而是如何利用工具去擴充。
2)然後,重點學習以上的基礎,以編程為重點,其餘的結合學習,順便說一句,其實自動化測試的理念與軟體設計模式理念很像,你可以從中有所領悟。
3)之後,再學習去拓建自己的自動化測試架構,何謂架構,一下說不清楚,我給你推薦一下
注意:如果沒有自動化測試方面的實踐項目的話,最好先從基礎學起,因為基礎學好了,自動化測試入門會很快的。
4(至於效能測試,也是一樣,可以先從工具入手,但不要局限於工具,效能測試最重要的是環境的構建方法以及對測試結果的分析方法,所以效能測試重點在於分析和實現過程,而不是工具使用過程。
或者對自動化測試有興趣的,可以發短訊息或者郵件我。(test_sunny@hotmail.com),有機會一起學習探討下
或者,可以看一下一個我的專註......餘下全文>>
 
想學習web自動化測試,ruby?python?javascript?各位大俠推薦下web的自動化語言指令碼語言,說明理由哈

web自動化測試,按照主流工具來分的話:
商業工具:
QTP所用語言是vbscript
開源:
selenium支援ruby和python
ruby還有watir,python有PAMIE,但watir比PAMIE更好。
具體學什麼,還要看大環境:
公司用什麼做工具做測試就學什麼唄
如果找工作,那就去求職網站搜“測試 ruby”和“測試 python”,那個職位多就學那個,哈哈
另:做web前端測試,javascript是必修了,多多少少都要會點~
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.