使用python做你自己的自动化测试--对Java代码做单元测试 (2)-导入第三方jar包裹
使用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包裹的更多相关文章
- java代码做repeat次运算,从键盘输入几个数,比最值
总结:今天这个题目有点灵活,因为它不但要求输出结果,还要进行几次相同的输入,不退出循环 import java.util.Scanner; //从键盘一次输入更多的数,然后把每一次的数进行---可比较 ...
- python webdriver 从无到有搭建数据驱动自动化测试框架的步骤和总结
一步一步搭建数据驱动测试框架的过程和总结 跟吴老学了搭建自动化数据驱动的框架后,我在自己练习的时候,尝试从简单的程序进行一点一点的扩展和优化,到实现这个数据驱动的框架. 先说一下搭建自动化测试框架的目 ...
- 想转行做程序员,是学习JAVA还是Python?哪个更好?
请大家务必审题,转行做程序员,是程序员,并非数据分析也不是软件测试. 首先声明:这是一篇容易引起撕逼的问答,为了祖国和谐,人民安康,请各位看官尽量理性讨论. 同时,这篇文章是面向一些初入行的朋友进行一 ...
- Python 基于python实现的http接口自动化测试框架(含源码)
基于python实现的http+json协议接口自动化测试框架(含源码) by:授客 QQ:1033553122 欢迎加入软件性能测试交流 QQ群:7156436 由于篇幅问题,采用百度网 ...
- 使用python requests库写接口自动化测试--记录学习过程中遇到的坑(1)
一直听说python requests库对于接口自动化测试特别合适,但由于自身代码基础薄弱,一直没有实践: 这次赶上公司项目需要,同事小伙伴们一起学习写接口自动化脚本,听起来特别给力,赶紧实践一把: ...
- 十年测试老鸟告诉你--自动化测试选JAVA还是选Python--写给还在迷茫中的朋友
一.前言 Python和Java哪个更适合做自动化测试?这是很多测试工程师从功能跨入自动化纠结的问题,今天测试老鸟来带大家详细分析一下!写给还在迷茫中的朋友! 首先可以确认的是提出这个问题的肯定是一个 ...
- Python进阶:函数式编程实例(附代码)
Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...
- Python中导入第三方声源库Acoular的逻辑解释以及Acoular的下载
[声明]欢迎转载,但请保留文章原始出处→_→ 秦学苦练:http://www.cnblogs.com/Qinstudy/ 文章来源:http://www.cnblogs.com/Qinstudy/p/ ...
- 入门级----黑盒测试、白盒测试、手工测试、自动化测试、探索性测试、单元测试、性能测试、数据库性能、压力测试、安全性测试、SQL注入、缓冲区溢出、环境测试
黑盒测试 黑盒测试把产品软件当成是一个黑箱子,只有出口和入口,测试过程中只要知道往黑盒中输入什么东西,知道黑盒会出来什么结果就可以了,不需要了解黑箱子里面是如果做的. 即测试人员不用费神去理解软件里面 ...
随机推荐
- c++学习笔记4,调用派生类的顺序构造和析构函数(一个)
测试源代码: //測试派生类的构造函数的调用顺序何时调用 //Fedora20 gcc version=4.8.2 #include <iostream> using namespace ...
- Android系统开发(2)——GDB调试工具
调试的过程 我们在eclipse中来看一下一般调试的过程: 1.debug模式编译 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGF3YW5nYW5iY ...
- 【翻译自mos文章】回收 asm磁盘空间的方法
回收 asm磁盘空间的方法 參考原文: How To Reclaim Asm Disk Space? (Doc ID 351866.1) 适用于: Oracle Database - Enterpri ...
- ssh否password登陆server
在线辅导课非常多,但仍录,使用时方便日后查询. 两server,内联网ip每间: 172.16.3.91 (本地计算机) 172.16.3.92 (远程机) 现在想在本地计算机上通过ssh 172.1 ...
- paip.java UrlRewrite 的原理and实现 htaccess正則表達式转换
paip.java UrlRewrite 的原理and实现 htaccess正則表達式转换 #---KEYWORD #-正則表達式 正則表達式 表示 非指定字符串开头的正则 排除指定文件夹.. 作者 ...
- URAL 1553. Caves and Tunnels 树链拆分
一颗树 每次出发点右键值是0 2操作模式1.第一i右键点值添加x 2.乞讨u至v在这条路上右上方值 树为主的连锁分裂称号 #include <cstdio> #include <cs ...
- sql pivot、unpivot和partition by用法
原文:sql pivot.unpivot和partition by用法 演示脚本 from sys.sysobjects where name = 'Student' AND type = 'U') ...
- SQL SERVER2005事务日志已满 解决方法
DUMP TRANSACTION 数据库名称 WITH NO_LOG alter database 数据库名称 set recovery simple 3.右键你要压缩的数据库--所有任务--收缩数据 ...
- 什么是Cyclomatic Complexity(圈复杂度)?
Campwood Software SourceMonitor Version 3.5 The freeware program SourceMonitor lets you see inside y ...
- ASP.NET 异步编程
ASP.NET 异步编程 相关博文: 异步编程 In .NET(回味无穷!!!) ASP.NET sync over async(异步中同步,什么鬼?) 本来这篇博文想探讨下异步中的异常操作,但自己在 ...