用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等模組來操作...