用python做自動化測試--對Java代碼做單元測試 (2)-匯入第三方jar包,pythonjar

來源:互聯網
上載者:User

用python做自動化測試--對Java代碼做單元測試 (2)-匯入第三方jar包,pythonjar

用Jython對Java做單元測試,當然是為了測試公司開發的java代碼,這樣就涉及到匯入第三包的問題,怎麼匯入第三方包? 可以利用http://blog.csdn.net/powerccna/article/details/37739207 這裡的實現的函數,掃描指定目錄下的jar包,然後通過sys.path.append()函數加入到jython的sys.path裡面。

for jar_file in scan_files("/home/jim/java_jar",postfix=".jar"):    sys.path.append(jar_file)

import 第三方包,必須先append進來後才可以import,要不然會報找不到包。有些人在使用過程中說有要同時加入到CLASSPATH裡面,我使用的時候,只是mysql driver這個jar包需要加入到CLASSPATH裡面,其他的直接加入到sys.path裡面就可以用了。

注意這裡from org.apache.commons.net.ftp import FTPClient, 還是和cpython有點不一樣的,FTPClient在這裡是個檔案,對應Cpython裡面叫著一個模組,在Cpython裡面要初始化FTPClient這個類,應該是ftp=FTPClient.FTPClient(), 因為FTPClient.FTPClient才是真正的類,但這裡是ftp=FTPClient(),Jython是java實現的,遵守java的規則多點吧。

#!/usr/bin/env jython#coding=utf-8import sysimport osimport javaimport unittestimport time#scan_files是在另外一個地方實現的函數,這裡刪除了函數的實現方法,是為了大家看單元測試這塊清晰for jar_file in scan_files("/home/jim/java_jar",postfix=".jar"):    sys.path.append(jar_file)#print sys.pathfrom com.mysql.jdbc import Driverimport java.sql.Connectionfrom java.sql import DriverManagerimport org.apache.commons.net.ftp.FTP;from org.apache.commons.net.ftp import FTPClientimport org.apache.commons.net.ftp.FTPReplydef mysql_driver_test():     java.lang.Class.forName('com.mysql.jdbc.Driver')    conn = DriverManager.getConnection("jdbc:mysql://192.168.19.21:3306/mysql","root","root");class FTPClientTest(unittest.TestCase):    def setUp(self):        self.start_time=time.time()        print "starting\n",             def test_login(self):        ftp=FTPClient()        ftp.connect("192.168.23.117")        ftp.login("root","root")        self.assertEquals(ftp.getReplyCode(),230)        def test_files_list(self):        #這裡之所以重新登入ftp伺服器,不重用前面case的結果,就是為了保持各個case的獨立性,確保不會        #因為前面case的原因影響後繼的測試        file_existing=False        ftp=FTPClient()        ftp.connect("192.168.23.117")        ftp.login("root","root")                if ftp.getReplyCode()==230:            files = ftp.listNames("/export/home/test")            for fi in files:                if "python-2.5-sol10-x86-local.gz" in fi:                    file_existing=True                    break                        self.assertEquals(file_existing,True)            def tearDown(self):        print "cost", time.time()-self.start_time," second"        print "end"    if __name__=="__main__":    unittest.main()
運行結果:

[root@host-192-168-53-21 jythontest]# jython importjar.py 
starting
cost 0.157999992371  second
end
.starting
cost 0.0529999732971  second
end
----------------------------------------------------------------------
Ran 2 tests in 0.215s

OK


初學Python,想做手機自動化測試指令碼,想瞭解幾個問題

1、手機自動化測試Python能獨立完成嗎?可以。
2、想要學的話,看哪本教程會好些?首先學習自動化測試,然後學習python,然後結合執行個體學習。可以參考wenku.baidu.com/...1.html
3、主要要學習的模組內容或者方向是哪些?
Python的世界有一個開源架構Splinter,可以非常棒的類比瀏覽器的行為(從某種意義上也可以說是人的訪問點擊行為)。Splinter提供了豐富的API,可以擷取頁面的資訊,以判斷當前的行為所產生的結果

4、還有懂這行補充給我的,我另加分。。多項
多學習測試的各方面知識,python只是工具。測試的理論知識很重要。
 
教python自動化測試

這個問題比較寬泛,首先對於版本建議暫時使用2.5,對於你所說的使用python指令碼測試想學,不知道怎麼入門的問題:自動化測試分很多內容,它包括gui、功能、效能等多個方面,而且對於不同的軟體應用也會應用到不同的包,比如web頁面的自動化測試,可以直接使用那麼python指令碼操作ie核心的瀏覽器進行測試,那麼我們可以使用pamie模組來進行...又比如對gui的自動化測試又可能使用到pil、win32等模組來操作...
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.