使用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):
#这里之所以又一次登录ftpserver,不重用前面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做你自己的自动化测试--对Java代码做单元测试 (2)-导入第三方jar包裹的更多相关文章

  1. java代码做repeat次运算,从键盘输入几个数,比最值

    总结:今天这个题目有点灵活,因为它不但要求输出结果,还要进行几次相同的输入,不退出循环 import java.util.Scanner; //从键盘一次输入更多的数,然后把每一次的数进行---可比较 ...

  2. python webdriver 从无到有搭建数据驱动自动化测试框架的步骤和总结

    一步一步搭建数据驱动测试框架的过程和总结 跟吴老学了搭建自动化数据驱动的框架后,我在自己练习的时候,尝试从简单的程序进行一点一点的扩展和优化,到实现这个数据驱动的框架. 先说一下搭建自动化测试框架的目 ...

  3. 想转行做程序员,是学习JAVA还是Python?哪个更好?

    请大家务必审题,转行做程序员,是程序员,并非数据分析也不是软件测试. 首先声明:这是一篇容易引起撕逼的问答,为了祖国和谐,人民安康,请各位看官尽量理性讨论. 同时,这篇文章是面向一些初入行的朋友进行一 ...

  4. Python 基于python实现的http接口自动化测试框架(含源码)

    基于python实现的http+json协议接口自动化测试框架(含源码) by:授客 QQ:1033553122      欢迎加入软件性能测试交流 QQ群:7156436  由于篇幅问题,采用百度网 ...

  5. 使用python requests库写接口自动化测试--记录学习过程中遇到的坑(1)

    一直听说python requests库对于接口自动化测试特别合适,但由于自身代码基础薄弱,一直没有实践: 这次赶上公司项目需要,同事小伙伴们一起学习写接口自动化脚本,听起来特别给力,赶紧实践一把: ...

  6. 十年测试老鸟告诉你--自动化测试选JAVA还是选Python--写给还在迷茫中的朋友

    一.前言 Python和Java哪个更适合做自动化测试?这是很多测试工程师从功能跨入自动化纠结的问题,今天测试老鸟来带大家详细分析一下!写给还在迷茫中的朋友! 首先可以确认的是提出这个问题的肯定是一个 ...

  7. Python进阶:函数式编程实例(附代码)

    Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...

  8. Python中导入第三方声源库Acoular的逻辑解释以及Acoular的下载

    [声明]欢迎转载,但请保留文章原始出处→_→ 秦学苦练:http://www.cnblogs.com/Qinstudy/ 文章来源:http://www.cnblogs.com/Qinstudy/p/ ...

  9. 入门级----黑盒测试、白盒测试、手工测试、自动化测试、探索性测试、单元测试、性能测试、数据库性能、压力测试、安全性测试、SQL注入、缓冲区溢出、环境测试

    黑盒测试 黑盒测试把产品软件当成是一个黑箱子,只有出口和入口,测试过程中只要知道往黑盒中输入什么东西,知道黑盒会出来什么结果就可以了,不需要了解黑箱子里面是如果做的. 即测试人员不用费神去理解软件里面 ...

随机推荐

  1. fedora linux平台下搭建lighttpd+php+sqlite

    (一)lighttpd 1. 安装 yum install lighttpd 安装完毕后,系统中应该多了一个用户lighttpd和组lighttpd.这个用户,默认是不同意登陆的. 我们改动/etc/ ...

  2. 开源 自由 java CMS - FreeCMS1.9 分纪录

    项目地址:http://www.freeteam.cn/ 2.4.1 积分记录 查看系统全部会员积分记录. 从左側管理菜单点击积分记录进入. 版权声明:本文博客原创文章,博客,未经同意,不得转载.

  3. 在WPF中处理Windows消息

    在Winform中 处理Windows消息通过重写WndProc方法 在WPF中 使用的是System.Windows. Sytem.Windows.Controls等名字空间,没有WndProc函数 ...

  4. 实现app上对csdn的文章列表上拉刷新下拉加载以及加入缓存文章列表的功能 (制作csdn app 四)

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/23698511 今天继续对我们的csdn客户端未完成的功能进行实现,本篇博客接着客 ...

  5. not accessible due to restriction on required library

    The type AWTUtilities is not accessible due to restriction on required library D:\Program Files\jdk1 ...

  6. UVA - 12130 Summits

    Description Problem G - Summits Time limit: 8 seconds You recently started working for the largest m ...

  7. 我已提取并尝试使用启动脚本(./start navicat)来启动 Navicat Linux 版本号,但没有反应

    具体的安装教程,參考这个navicat_for_mysql_10.0.11在linux下的安装,介绍的非常具体 參考这个 :我可否在 64-bit Linux 执行 Navicat? 推荐navica ...

  8. LA3026 - Period(KMP)

    For each prefix of a given string S with N characters (each character has an ASCII code between 97 a ...

  9. JAVA学习篇--JAVA两种编程模式控制

    在Drp项目中,解说了两种编程模式Model 1和Model2.以下是对这两种模式的简单理解.以及因为Model2是基于MVC架构的模式,就将我们易混淆的MVC与我们之前学的三层架构进行对照学习一下. ...

  10. poj 1061 扩展欧几里德同余方程求解

    摘要写在一瞪眼. #include<iostream> using namespace std; long long exgcd(long long a,long long b,long ...