python做自动化测试,对java代码做单元测试(2)
2016-01-18 00:00
686 查看
摘要: 导入第三方jar包
用Jython对Java做单元测试,当然是为了测试公司开发的java代码,这样就涉及到导入第三包的问题,怎么导入第三方包? 可以利用http://blog.csdn.net/powerccna/article/details/37739207 这里的实现的函数,扫描指定目录下的jar包,然后通过sys.path.append()函数加入到jython的sys.path里面。
import 第三方包,必须先append进来后才可以import,要不然会报找不到包。有些人在使用过程中说有要同时加入到CLASSPATH里面,我使用的时 候,只是mysql driver这个jar包需要加入到CLASSPATH里面,其他的直接加入到sys.path里面就可以用了。
这里示例第三方包是commons-net-3.3, 可以从这里下载jar包, http://commons.apache.org/proper/commons-net/download_net.cgi
注意这里from org.apache.commons.net.ftp import FTPClient, 还是和cpython有点不一样的,FTPClient在这里是个文件,对应Cpython里面叫着一个模块,在Cpython里面要初始化 FTPClient这个类,应该是ftp=FTPClient.FTPClient(), 因为FTPClient.FTPClient才是真正的类,但这里是ftp=FTPClient(),Jython是java实现的,遵守java的规则 多点吧。
用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里面就可以用了。
这里示例第三方包是commons-net-3.3, 可以从这里下载jar包, http://commons.apache.org/proper/commons-net/download_net.cgi
注意这里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-8
import sys
import os
import java
import unittest
import time
#scan_files是在另外一个地方实现的函数,这里删除了函数的实现方法,是为了大家看单元测试这块清晰
for jar_file in scan_files("/home/jim/java_jar",postfix=".jar"): sys.path.append(jar_file)
#print sys.path
from com.mysql.jdbc import Driver
import java.sql.Connection
from java.sql import DriverManager
import org.apache.commons.net.ftp.FTP;
from org.apache.commons.net.ftp import FTPClient
import org.apache.commons.net.ftp.FTPReply
def 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()
相关文章推荐
- Python扫描指定目录下(包括子目录)的文件
- 用python做自动化测试--对Java代码做单元测试 (1)
- 编写python脚本-->批量下载淘宝 2012年ADC技术嘉年华PDF文件
- 2016/01/18 Python学习1
- python爬虫模拟登录之验证码
- Python学习第四天
- 在spark上做简单的文本分类(python)
- [Python标准库]random——伪随机数生成器
- python修饰符——带参数
- Python一周学习的小结
- Python及requests乱码问题的总结
- python无参数的装饰符
- python 环境搭建(Mac)
- ML--HMM(隐马尔可夫模型及python的实现2)
- python100例(一)
- python列表和QVariant
- 《笨办法学Python》 第15课手记
- Python 基础【一】
- python数据类型-列表(序列类型)
- python collection系列