08 2012 档案

摘要:import mathclass Measurement(object): def __init__(self, val, perc): self.val = val self.perc = perc self.abs = self.val * self.perc / 100.0 def __repr__(self): return "Measurement (%r, %r)" % (self.val, self.perc) def __str__(self): return "%g+-%g%%" % (... 阅读全文
posted @ 2012-08-31 18:51 苍术厚朴 阅读(1672) 评论(0) 推荐(0)
摘要:import UserDictclass FifoCache(object, UserDict.DictMixin): def __init__(self, num_entries, dct= ()): self.num_entries = num_entries self.dct = dict(dct) self.lst = [ ] def __repr__(self): return '%r (%r,%r)' % (self.__class__.__name__, self.name_entries, self.dct) ... 阅读全文
posted @ 2012-08-31 17:50 苍术厚朴 阅读(414) 评论(0) 推荐(0)
摘要:范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar[root@linux ~]# tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩![root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩# 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。# 如果加 z 参数,则以 .tar.gz 或 .t 阅读全文
posted @ 2012-08-31 16:27 苍术厚朴 阅读(725) 评论(0) 推荐(0)
摘要:#虽然版本控制系统更强大,但这个脚本在开发工作中然后很有用。我常常对它进行定制,比如只对某个特定后缀名的文件进行备份;在for file in files 循环的内部加一个适当的测试就行了。如:name, ext = os.path.splitext(file) if ext not in ('.py', '.txt', '.doc'):continue 代码片段首先使用标准库模块os.path的splitext函数来获得文件的扩展名(以一个句号开始),放入局部变量ext中,然后,如果文件拓展名不是我们感兴趣的几个扩展名之一,我们就执行conti 阅读全文
posted @ 2012-08-30 19:08 苍术厚朴 阅读(1222) 评论(0) 推荐(0)
摘要:首先当然是要安装samba了,呵呵:代码:sudo apt-get install sambasudo apt-get install smbfs下面我们来共享群组可读写文件夹,假设你要共享的文件夹为: /home/ray/share首先创建这个文件夹代码:mkdir /home/ray/sharechmod 777 /home/ray/share备份并编辑smb.conf允许网络用户访问代码:sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backupsudo gedit /etc/samba/smb.conf搜寻这一行文字代码:; secur 阅读全文
posted @ 2012-08-30 17:00 苍术厚朴 阅读(1843) 评论(0) 推荐(0)
摘要:数据库名、实例名、数据库域名、全局数据库名、服务名 ,这是几个令很多初学者容易混淆的概念。相信很多初学者都与我一样被标题上这些个概念搞得一头雾水。我们现在就来把它们弄个明白。一、数据库名什么是数据库名?数据库名就是一个数据库的标识,就像人的身份证号一样。他用参数DB_NAME表示,如果一台机器上装了多全数据库,那么每一个数据库都有一个数据库名。在数据库安装或创建完成之后,参数DB_NAME被写入参数文件之中。格式如下:DB_NAME=myorcl...在创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,即使要修改也会很麻烦。因为,数据库名还被写入控制文件中,控制文件是以 阅读全文
posted @ 2012-08-29 18:04 苍术厚朴 阅读(830) 评论(0) 推荐(0)
摘要:限于作者水平有限,以下内容可能是管窥之见,希望大家高抬贵手,且让我斗胆抛砖引玉。公司产品迪备主要是通过网页操作来进行数据库的备份与恢复,监控与管理,因此在测试的过程中,可以用python测试脚本来模拟用户的操作,这样的测试对于回归测试效果尤佳,减少了人工操作,极大地提高了效率。据网上资料得知,python的web测试开源世界,存在splinter,它是自动化测试web的框架,这是最为基本的Web-driver。然后加上selenium,两者并用,才能支持主流的浏览器的firefox, chrome 和IE ,到目前为止,支持chrome浏览器的最为齐全,连鼠标的模拟的API都存在,同时对其余两 阅读全文
posted @ 2012-08-28 23:21 苍术厚朴 阅读(11649) 评论(2) 推荐(2)
摘要:#能够将XML文档转换为字典和列表的组合,是一个不错的主意from xml.parsers import expatclass Element(object): '''analyze a element''' def __init__(self, name, attributes): #record tag and attribute dictionary self.name = name self.attributes = attributes #clear the element cdata and its childre... 阅读全文
posted @ 2012-08-25 14:17 苍术厚朴 阅读(3037) 评论(0) 推荐(1)
摘要:import xml.dom.minidomdocument = """\<slideshow><title>Demo slideshow</title><slide><title>Slide title</title><point>This is a demo</point><point>Of a program for processing slides</point></slide><slide><title& 阅读全文
posted @ 2012-08-25 11:20 苍术厚朴 阅读(504) 评论(0) 推荐(0)
摘要:#需要使用SSH协议登录本地或远程计算机,并发送命令# use ssh to control remote computersimport os, sys, paramikofrom getpass import getpassparamiko.util.log_to_file('auto_ssh.log',0)def parse_user(user,default_host, default_port): '''given name [@host[:port]],return name,host,port,if not, return default 阅读全文
posted @ 2012-08-25 10:47 苍术厚朴 阅读(807) 评论(0) 推荐(0)
摘要:需要你的主线程把处理任务托付给一个工作线程池Queue.Queue是用来协调工作线程池的最简单和最有效率的方法。因为它已经有了全局变量的保护(加锁和解锁)#-*-coding:utf-8-*-import threading, Queue, time, sys#global varialbesQin = Queue.Queue()Qout = Queue.Queue()Qerr = Queue.Queue()Pool = [ ]def report_error(): '''put error information into Qerr to report the err 阅读全文
posted @ 2012-08-25 08:50 苍术厚朴 阅读(350) 评论(0) 推荐(0)
摘要:需要将某个网络端口转发到另外一个主机(forwarding),但可能会是不同的端口(redirecting)import sys, socket, time, threadingLOGGING = Trueloglock = threading.Lock()def log(s, *a): if LOGGING: loglock.acquire() try: print '%s:%s' %(time.ctime(), (s%a)) sys.stdout.flush() finally: ... 阅读全文
posted @ 2012-08-25 08:41 苍术厚朴 阅读(2528) 评论(0) 推荐(0)
摘要:import BaseHTTPServer, shutil, osfrom cStringIO import StringIOclass MyHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): #The http path we service and the command we service cmds = {'/ping':'ping www.thinkware.se', '/netstat': 'netstat -a', '/tracert' 阅读全文
posted @ 2012-08-25 01:17 苍术厚朴 阅读(1854) 评论(0) 推荐(0)
摘要:吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣,不如登高之博见也。登高而招,臂非加长也,而见者远;顺风而呼,声非加疾也,而闻者彰。假舆马者,非利足也,而致千里;假舟楫者,非能水也,而绝江河。君子生非异也,善假于物也。—-《劝学》学而不思则罔,思而不学则殆。温故而知新,可以为师矣。—- 《论语·为政第二》学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?—- 《论语·学而第一》KISS. Keep It Simple,Stupid.—- UnkownA designer knows he has arrived at perfection not whe 阅读全文
posted @ 2012-08-22 17:01 苍术厚朴 阅读(368) 评论(0) 推荐(0)
摘要:"""Loading unittests."""import osimport reimport sysimport tracebackimport typesfrom functools import cmp_to_key as _CmpToKeyfrom fnmatch import fnmatchfrom . import case, suite__unittest = True# what about .pyc or .pyo (etc)# we would need to avoid loading the same tes 阅读全文
posted @ 2012-08-22 09:27 苍术厚朴 阅读(4258) 评论(0) 推荐(0)
摘要:"""Generic socket server classes. 2 3 This module tries to capture the various aspects of defining a server: 4 5 For socket-based servers: 6 7 - address family: 8 - AF_INET{,6}: IP (Internet Protocol) sockets (default) 9 - AF_UNIX: Unix domain socke... 阅读全文
posted @ 2012-08-19 01:06 苍术厚朴 阅读(877) 评论(0) 推荐(0)
摘要:需要看懂以下代码:需参考http://docs.python.org/dev/library/tokenize.html#tokenize.tokenize#!/usr/bin/env python# author: Hua Liang [ Stupid ET ]# email: et@everet.org# website: http://EverET.org## Grammar:# expr ::= expr addop term | term# term ::= term mulop factor | factor# factor ::= nu... 阅读全文
posted @ 2012-08-18 22:55 苍术厚朴 阅读(4754) 评论(1) 推荐(0)
摘要:高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的::qx 开始记录宏,并将结果存入寄存器xq 退出记录模式@x 播放记录在x寄存器中的宏命令稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模式,然后输入@x对刚才记录下来的命令进行重复,此命令后可跟数字,表示要重复多少次,比如@x20,可以重复20次。这个在文本的批处理中是非常有用的。同时编辑多个文件在vim众多的插件中,有一个叫minibuffer的插件,就是下面所说的标签页功能了,可以支持同时编辑多个文件。标签命令:tabe fn 在一个新的标 阅读全文
posted @ 2012-08-18 12:43 苍术厚朴 阅读(169) 评论(0) 推荐(0)
摘要:python自动化web测试文档包含的内容: 1.web自动化说明与框架 2. web自动化测试例子 3.环境的搭建(附录) 近期,由于对需要对迪备产品进行web测试,上网找了些关于python进行自动化测试的资料,发现进行Web测试,可以通过Webdriver去模拟用户的操作,当前比较出色就是splinter+selenuim,基本上支持IE,fixfox和chrome浏览器的基本操作。 有了第三方模拟浏览器工具的帮助,然后就要想想产品的测试框架了,因为我们的产品基本上进行的是功能测试,而python自己自带的unitt... 阅读全文
posted @ 2012-08-17 17:44 苍术厚朴 阅读(1438) 评论(0) 推荐(0)
摘要:#-*-coding:utf-8-*-from __future__ import with_statementimport osimport unittestimport timefrom splinter import Browserfrom random import randintclass DbackupTestCase(unittest.TestCase): @classmethod def setUpClass(cls): cls.browser = Browser('firefox') @classmethod def setDownCla... 阅读全文
posted @ 2012-08-17 10:48 苍术厚朴 阅读(2848) 评论(0) 推荐(0)
摘要:#!/usr/bin/env python请参考http协议:import socketimport reimport sysdef check_webserver(address, port, resource): #build up HTTP request string if not resource.startswith('/'): resource = '/' + resource request_string = "GET %s HTTP/1.1\r\nHost: %s\r\n\r\n" %(resource,address) p 阅读全文
posted @ 2012-08-17 02:00 苍术厚朴 阅读(501) 评论(0) 推荐(0)
摘要:具体文档参见:http://docs.python.org/library/xml.etree.elementtree.html例子:#-*-coding:utf-8-*-from xml.etree import ElementTree as ETfile = ET.parse('ftp.xml')ftps = file.findall('/ftp')for ftp in ftps: print ftp.attrib print ftp.get('name') print ftp.get('ip') print ftp.get( 阅读全文
posted @ 2012-08-17 01:27 苍术厚朴 阅读(378) 评论(0) 推荐(0)
摘要:#!/usr/bin/env pythonimport ftplibimport osclass FTPSync(object): def __init__(self,host,username, password, ftp_base_dir, local_base_dir, delete=False): self.host = host self.username = username self.password = password self.ftp_base_dir = f... 阅读全文
posted @ 2012-08-17 00:32 苍术厚朴 阅读(428) 评论(0) 推荐(0)
摘要:Some _mysql examplesOkay, so you want to use _mysql anyway. Here are some examples.The simplest possible database connection is:import _mysqldb=_mysql.connect()This creates a connection to the MySQL server running on the local machine using the standard UNIX socket (or named pipe on Windows), your l 阅读全文
posted @ 2012-08-17 00:29 苍术厚朴 阅读(1339) 评论(0) 推荐(0)
摘要:Answer to QuestionsWhy do we need XML parser?We need XML parser because we do not want to do everything in our application from scratch, and we need some "helper" programs or libraries to do something very low-level but very necessary to us. These low-level but necessary things include che 阅读全文
posted @ 2012-08-15 22:28 苍术厚朴 阅读(364) 评论(0) 推荐(0)
摘要:JSON格式:http://www.json.org/python和JSON的关系请参考:http://docs.python.org/library/json.html JSON建构有两种结构: 1.“名称/值”对的集合(Acollectionofname/valuepairs)。不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hashtable),有键列表(keyedlist),或者关联数组(associativearray)。 2.值的有序列表(Anorderedlistofvalues)。在大部分语言... 阅读全文
posted @ 2012-08-15 22:02 苍术厚朴 阅读(52661) 评论(6) 推荐(11)
摘要:Ajax的jquery的api和例子参考:http://api.jquery.com/jQuery.ajax/15.1. Scripting LanguagesSo far, pretty much everything we have done has been server-based. However, client-based code - client-side scripting is an alternative that can be used instead of, or (more commonly) as well as server side code.There ar 阅读全文
posted @ 2012-08-15 21:54 苍术厚朴 阅读(1421) 评论(0) 推荐(0)
摘要:jQuery API Documentation详细的API和例子说明,请参考文档:http://docs.jquery.com/Main_Page百度百科的解析:http://baike.baidu.com/view/1020297.htmCore$( expr , context )This function accepts a string containing a CSS or basic XPath selector which is then used to match a set of elements.The core functionality of jQuery cente 阅读全文
posted @ 2012-08-15 21:37 苍术厚朴 阅读(1624) 评论(0) 推荐(0)
摘要:#-*-coding:utf-8-*-from __future__ import with_statementimport ostry: import unittest2 as unittestexcept ImportError: import unittestimport time from splinter import Browserfrom random import randint class DbackupTestCase(unittest.TestCase): # support 2.7,but not support 2.6.all the testca... 阅读全文
posted @ 2012-08-15 18:26 苍术厚朴 阅读(1605) 评论(0) 推荐(1)
摘要:# -*- coding: utf-8 -*-# Copyright 2012 splinter authors. All rights reserved.# Use of this source code is governed by a BSD-style# license that can be found in the LICENSE file.class AsyncFinderTests(object): def test_find_by_css_should_found_an_async_element(self): "should find element b... 阅读全文
posted @ 2012-08-14 19:20 苍术厚朴 阅读(462) 评论(0) 推荐(0)
摘要:来自 http://everet.org/# -*- coding:utf-8 -*-# 破解教务网密码# 作者:华亮from HTMLParser import HTMLParserfrom Queue import Emptyfrom Queue import Queuefrom re import matchfrom sys import exitfrom urllib import urlencodeimport osimport reimport socketimport threadingimport timeimport urllibimport urllib2import sh 阅读全文
posted @ 2012-08-14 00:34 苍术厚朴 阅读(2257) 评论(0) 推荐(0)
摘要:当我基本能从事Django框架来对网站进行开发的时候,发现对Python的知识了解得太少了,甚至到了知识匮乏的阶段。看来,我得温习一下Python知识了。据我个人的理解,Python中有三种内置的数据类型。dictionary(字典)、List(列表)和tuple(元组)。下面我将对这几个内置的数据类型进行总结。Dictionary(字典)首先,什么是字典呢?通俗地来讲,字典无非就是很多的数据,但是它有一个目录,可以通过目录中的一个简单值来找到与之相对于的详细信息。换句话来说,目录就是内容的一个特殊标示,即目录中的每一个字段,都会在内容中有与之相对应的详细信息。也就是说,目录中的每一个信息都是 阅读全文
posted @ 2012-08-13 23:19 苍术厚朴 阅读(36697) 评论(1) 推荐(5)
摘要:select函数: 系统提供select函数来实现多路复用输入/输出模型。原型: #include <sys/time.h> #include <unistd.h> select函数: 系统提供select函数来实现多路复用输入/输出模型。原型: #include <sys/time.h> #include <unistd.h> int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset,struct timeval *timeout); 参数maxfd是需要监视的最大的文件描述符 阅读全文
posted @ 2012-08-13 22:46 苍术厚朴 阅读(1830) 评论(1) 推荐(0)
摘要:简介: 软件的测试是一件非常乏味的事情,在测试别人编写的软件时尤其如此,程序员通常都只对编写代码感兴趣,而不喜欢文档编写和软件测试这类"没有创新"的工作。既然如此,为什么不让程序员在编写软件时自己加入一些用于测试的代码,使测试过程自动化呢?在软件工程中,这一技术称为自动单元测试,本文介绍在用Python开发软件时如何实现这一目标。 一、软件测试大型软件系统的开发是一个很复杂的过程,其中因为人的因素而所产生的错误非常多,因此软件在开发过程必须要有相应的质量保证活动,而软件测试则是保证质量的关键措施。正像软件熵(software entropy)所描述的那样:一个程序从设计很好 阅读全文
posted @ 2012-08-13 21:44 苍术厚朴 阅读(3617) 评论(0) 推荐(1)
摘要:正则表达式由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,我们下面会给予解释。 在最简单的情况下,一个正则表达式看上去就是一个普通的查找串。例如,正则表达式"testing"中没有包含任何元字符,它可以匹配"testing"和"123testing"等字符串,但是不能匹配"Testing"。 要想真正的用好正则表达式,正确的理解元字符是最重要的事情。下表列出了所有的元字符和对它们的一个简短的描述。元字符描述\将下一个字符标记为一个特殊字符、或 阅读全文
posted @ 2012-08-13 21:28 苍术厚朴 阅读(1833) 评论(0) 推荐(0)
摘要:1. 查看所有表空间大小SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_data_files (数据文件) 2 group by tablespace_name;2. 已经空闲的表空间大小SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_free_space(空闲表空间) 2 group by tablespace_name;3. 所以使用空间可以这样计算 select a.tablespace_name,total,free,total-free 阅读全文
posted @ 2012-08-13 19:05 苍术厚朴 阅读(21578) 评论(0) 推荐(0)
摘要:具体的cx_oracle的api请查看:http://cx-oracle.sourceforge.net/html/index.html首先开启开启oracle数据库,同时也要开启侦听端口,使用命令lsnrctl status产看,lsnrctl start开启import cx_Oracledb=cx_Oracle.connect('system','dingjia','192.168.88.213/orcl11') #获取connection对象cursor=db.cursor() #获取游标对象create_table = "&q 阅读全文
posted @ 2012-08-13 17:20 苍术厚朴 阅读(16132) 评论(0) 推荐(0)
摘要:#!/usr/bin/env pythonfrom sys import argvfrom os import makedirs,unlink,sepfrom os.path import dirname,exists,isdir,splitextfrom string import replace,find,lowerfrom htmllib import HTMLParserfrom urllib import urlretrievefrom urlparse import urlparse,urljoinfrom formatter import DumbWriter,AbstractF 阅读全文
posted @ 2012-08-13 01:44 苍术厚朴 阅读(962) 评论(0) 推荐(0)
摘要:# -*-coding:utf-8-*-import sys, os'''将当前进程fork为一个守护进程 注意:如果你的守护进程是由inetd启动的,不要这样做!inetd完成了 所有需要做的事情,包括重定向标准文件描述符,需要做的事情只有 chdir() 和 umask()了'''def daemonize(stdin='/dev/null',stdout= '/dev/null', stderr= 'dev/null'): '''Fork当前进程为守护进程,重定向标准文 阅读全文
posted @ 2012-08-13 01:05 苍术厚朴 阅读(6276) 评论(0) 推荐(0)
摘要:#!/usr/bin/env pythonimport os, signal,sys, time, select, randomdef child_make(i, read_end, write_end): fork_result = os.fork() if fork_result == 0: os.close(read_end) child_main(i,write_end)def child_main(i,write_end): time.sleep(random.randint(3,6)) os.write(write_end, '=... 阅读全文
posted @ 2012-08-13 00:25 苍术厚朴 阅读(809) 评论(0) 推荐(0)
摘要:#需要检查一个“目录”,或者某个包含子目录的目录树,并根据某种模式迭代所有的文件(也可能包含子目录)使用的是os.walk生成器import os, fnmatchdef all_files(root, patterns = '*', single_level = False, yield_folders=False): patterns = patterns.split(';') for path, subdirs, files in os.walk(root): if yield_folders: files.extend(subdirs) ... 阅读全文
posted @ 2012-08-12 23:44 苍术厚朴 阅读(2997) 评论(0) 推荐(0)
摘要:#!/usr/bin/env python# author: Hua Liang [ Stupid ET ]# email: et@everet.org# website: http://EverET.org## Rule Of Optimization: Prototype before p... 阅读全文
posted @ 2012-08-12 21:54 苍术厚朴 阅读(6653) 评论(3) 推荐(1)
摘要:#!/usr/bin/env python# author: Hua Liang [ Stupid ET ]# email: et@everet.org# website: http://EverET.org#import socket, os, stat, threading, time, struct, getoptimport sys, re, signal, select, logging, logging.handlershost = '127.0.0.1'port = 21limit_connection_number = 5 # max client number 阅读全文
posted @ 2012-08-12 21:52 苍术厚朴 阅读(5467) 评论(0) 推荐(0)
摘要:# -*-coding:utf-8-*-# 作者:华亮#import urllibimport urllib2import refrom HTMLParser import HTMLParser# 获取QQ空间博客列表class QQBlogList(HTMLParser): in_key_div = False in_ul = False in_li = False in_a = False blogList = [] lasturl = '' def handle_starttag(self, tag, attrs): att... 阅读全文
posted @ 2012-08-12 21:46 苍术厚朴 阅读(945) 评论(0) 推荐(0)
摘要:"""A parser for HTML and XHTML.""" 2 3 # This file is based on sgmllib.py, but the API is slightly different. 4 5 # XXX There should be a way to distinguish between PCDATA (parsed 6 # character data -- the normal case), RCDATA (replaceable character 7 # data -- only cha 阅读全文
posted @ 2012-08-12 21:38 苍术厚朴 阅读(525) 评论(0) 推荐(0)
摘要:Source code: Lib/HTMLParser.pyThis module defines a class HTMLParser which serves as the basis for parsing text files formatted in HTML (HyperText Mark-up Language) and XHTML. Unlike the parser in htmllib, this parser is not based on the SGML parser in sgmllib.class HTMLParser.HTMLParserAn HTMLParse 阅读全文
posted @ 2012-08-12 21:36 苍术厚朴 阅读(603) 评论(0) 推荐(0)
摘要:文档:http://docs.python.org/library/pdb.htmlThe debugger recognizes the following commands. Most commands can be abbreviated to one or two letters; e.g. h(elp) means that either h or help can be used to enter the help command (but not he or hel, nor H or Help or HELP). Arguments to commands must be se 阅读全文
posted @ 2012-08-12 16:26 苍术厚朴 阅读(657) 评论(0) 推荐(0)
摘要:# -*- coding: utf-8 -*-# Copyright 2012 splinter authors. All rights reserved.# Use of this source code is governed by a BSD-style# license that can be found in the LICENSE file.from __future__ import with_statementfrom splinter.driver import ElementAPIfrom splinter.element_list import ElementListcl 阅读全文
posted @ 2012-08-12 16:01 苍术厚朴 阅读(1653) 评论(0) 推荐(0)
摘要:# -*- coding: utf-8 -*-# Copyright 2012 splinter authors. All rights reserved.# Use of this source code is governed by a BSD-style# license that can be found in the LICENSE file.from __future__ import with_statementimport loggingimport subprocessimport timeimport refrom contextlib import contextmana 阅读全文
posted @ 2012-08-12 15:52 苍术厚朴 阅读(3520) 评论(0) 推荐(0)
摘要:# -*- coding: utf-8 -*-:# Copyright 2012 splinter authors. All rights reserved.# Use of this source code is governed by a BSD-style# license that can be found in the LICENSE file."""This module contains the basic API for splinter drivers and elemnts."""from splinter.wit 阅读全文
posted @ 2012-08-12 15:45 苍术厚朴 阅读(1731) 评论(0) 推荐(0)
摘要:#!/usr/bin/env python# Copyright 2012 splinter authors. All rights reserved.# Use of this source code is governed by a BSD-style# license that can be found in the LICENSE file.import unittestfrom splinter import Browserclass TestGoogleSearch(unittest.TestCase): @classmethod def setUpClass(cls)... 阅读全文
posted @ 2012-08-12 15:41 苍术厚朴 阅读(496) 评论(0) 推荐(0)
摘要:# -*- coding: utf-8 -*-# Copyright 2012 splinter authors. All rights reserved.# Use of this source code is governed by a BSD-style# license that can be found in the LICENSE file."""This snippet show how to "test" a Facebook feature: the creation of an event.It creates an eve 阅读全文
posted @ 2012-08-12 15:39 苍术厚朴 阅读(646) 评论(0) 推荐(0)
摘要:作为脚本语言Python上手容易,但要学好Python能写出一手漂亮的、Pythonic的Python代码并非一日之功,本文的目的在于推荐一些优秀的Python相关的文章(至于书大家可以看dip、learning python和官方手册去),让你在成长为一名Python高手的路上少走一点弯路。注:文章都是英文的,学好Python读懂英文资料这是必须的了。1. PEP8 Style Guide for Python Code排第一的当属Python的编码规范PEP8,这个就不用我多说吧,无论是初学还是高手PEP8都是必须烂熟于胸的。在遵循里面讲述的规则的同时,大家也要记住两句比较特殊的话,不过这 阅读全文
posted @ 2012-08-12 11:41 苍术厚朴 阅读(1162) 评论(0) 推荐(2)
摘要:为了防止下面的过程出错,建议:sudo apt-get install build-essential python-dev libxml2-dev libxslt1-dev1.下载splinter 0.4.7.tar.gz包http://pypi.python.org/pypi/splinter/0.4.72.解压 tar -zxvf 安装包 进入cd splinter 0.4.73.安装 sudo python setup.py install ImportError: No module named setuptools wgethttp://pypi.python.org/packag 阅读全文
posted @ 2012-08-12 11:27 苍术厚朴 阅读(1423) 评论(2) 推荐(0)
摘要:#!/user/bin/python # -*- coding:utf8 -*- import Basic import os ##################################################### ######## Input #### folder = "D:\\安装包" folder = folder.encode("gbk") ######## Global #### fileList =... 阅读全文
posted @ 2012-08-11 20:39 苍术厚朴 阅读(830) 评论(0) 推荐(0)
摘要:总结来说就是用一种自动化回归脚本的方式,可以重复性的回归现有功能,并给出回归测试报告基于这个想法,我开发了这个脚本,定义了一套开发模式,基于这个模式,只要针对每个case添加如下的脚本代码:caseBegin('输入关键字执行搜索') ——>测试开始,其实就是打印一个日志 reset(__url) ——>重置访问指定URL,如s.etao.com addQ('nokia') ——>添加Q参数,搜索框只有一个固定的q参数可以输入 submit() ——>提交搜索表单 jumpUrl('a... 阅读全文
posted @ 2012-08-11 20:38 苍术厚朴 阅读(5141) 评论(1) 推荐(0)
摘要:通常对于一个稍具规模的系统,一些新的改动势必会带来一些额外的功能回归测试工作,而这个工作是非常繁杂的,人肉的方式一次又一次的重复将会非常的枯燥乏味。 而我们所希望的,是一种自动化回归脚本的方式,可以重复性的回归现有功能,并给出回归测试报告。 Python的世界有一个开源框架Splinter,可以非常棒的模拟浏览器的行为(从某种意义上也可以说是人的访问点击行为)。Splinter提供了丰富的API,可以获取页面的信息,以判断当前的行为所产生的结果最简单的例子browser = Browser(‘firefox’) 模拟一个浏览器browser.visit(‘http://waptest.taob 阅读全文
posted @ 2012-08-11 20:32 苍术厚朴 阅读(64707) 评论(0) 推荐(4)
摘要:1.oracle数据库的连接与用户管理: a. 首先要安装Oracle客户机(SQL*Plus应用程序) b. 假如需要远程连接,设置监听器配置文件(listener.ora),并开启lsnrctl监听器,有相应的service在服务 c. 假如有需要也可以设置下tnsnames.ora配置文件,里面是关于服务名和数据库对应的关系 连接时候可以有两种连接: 1.本地命名:在tnsnames.ora配置文件上 sqlplus /nolog connect sys/password as sysdba 2.简易连接命名 sqlplus sys/password@ipaddress... 阅读全文
posted @ 2012-08-10 19:27 苍术厚朴 阅读(383) 评论(0) 推荐(0)
摘要:在本文里你可以了解以下内容 1、 ORACLE 实例——包括内存结构与后台进程 2、 ORACLE 数据库——物理操作系统文件的集合 3、 了解内存结构的组成 4、 了解后台进程的作用 5、 了解数据库的物理文件 6、 解释各种逻辑结构 一、ORACLE实例 1、ORACLE 实例 System Global Area(SGA) 和 Background Process 称为数据库的实例。 2、ORACLE 数据库 一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等) 3、系统全局共享区System Global Area(SGA) System Gl... 阅读全文
posted @ 2012-08-10 15:13 苍术厚朴 阅读(370) 评论(0) 推荐(0)
摘要:1 ) 最重要的区别,存储的数据的重要性不同 【 sys 】 所有oracle的数据字典的基表和视图都存放在 sys 用户中,这些基表和视图对于 oracle 的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。 sys 用户拥有 dba , sysdba , sysoper 等角色或权限,是 oracle 权限最高的用户。 【 system 】 用户用于存放次一级的内部数据,如 oracle 的一些特性或工具的管理信息。 system 用户拥有普通 dba 角色权限。 2) 其次的区别,权限的不同。 【 system 】用户只能用 normal 身份登陆 em ,除非你对它... 阅读全文
posted @ 2012-08-09 19:34 苍术厚朴 阅读(252) 评论(0) 推荐(0)
摘要:触发器简介 触发器可以查询其他表,而且可以包含复杂的SQL语句。它们主要用于强制服从复杂的业务规则或要求。例如:您可以根据客户当前的帐户状态,控制是否允许插入新订单。 触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。DML触发器 当数据库中表中的数据发生变化时,包括insert,update,delete任意操作,如果我们对该表写了对应的DML触发器,那么该触发器自动执行。DML触发器的主要作用在于强制执行业务规则,... 阅读全文
posted @ 2012-08-09 14:12 苍术厚朴 阅读(3879) 评论(0) 推荐(0)
摘要:随着趋势发展的核心转向更多而不是更快发展,最大限度地提高并发性的重要性日益凸显。并发性使得编程模式发生了新的转变,可以编写异步代码,从而将多个任务分散到一组线程或进程中并行工作。如果您不是编程新手并且很熟悉 C 或 C++,您可能已经对线程和进程有所了解,并且知道它们之间的区别。在进行并发编程时,线程提供了进程的轻量级替代物,在大多数情况下多线程较多进程更受青睐。因此,本文将讨论如何通过多线程来实现并发性。与很多其他编程语言一样,在使用多 CPU 计算机时将占用大量 CPU 的任务分散到 Python 中的多个线程中(可以使用 Python 标准库中的多进程模块实现)可以提高性能。对于单处理器 阅读全文
posted @ 2012-08-09 14:07 苍术厚朴 阅读(4428) 评论(0) 推荐(0)
摘要:通过 Python 管理数据事务、处理大型对象事务包含一组 SQL 语句,这组 SQL 语句构成数据库中的一个逻辑操作,如转帐或信用卡支付操作。将 SQL 语句聚合到一个逻辑组中,其效果完全取决于事务的成败,事务成功则提交更改,事务失败则撤销内部 SQL 的结果(整体撤消)。通过 Python,您可以利用 Oracle 数据库所提供的原子性、一致性、孤立性和持久性优势。利用大型对象,可在一列中保存大量数据(从 Oracle Databaase 11g起该数量可达到 128TB),但这种灵活性是要付出代价的 — 用于访问和操作 LOB 的方法不同于常规查询方法。注意:Python 的 2.x 版 阅读全文
posted @ 2012-08-09 14:01 苍术厚朴 阅读(4234) 评论(0) 推荐(0)
摘要:调用数据库存储过程及其他感兴趣的高级 Python 编程功能。对于涉及数据库的软件开发来说,有两种主流开发方法:一种是在应用程序中(对于三层体系结构,也可以是在中间件中)实现所有业务逻辑,另一种是在数据库内部实现所有业务逻辑。本教程不讨论这两种解决方案的优缺点;不过,使用 Oracle 数据库方法还是会为面向数据库的应用程序带来某些好处。用 PL/SQL 嵌入所有业务逻辑可大大减少应用程序与数据库之间的往返次数,从而此使处理都在服务器端进行。PL/SQL 与 SQL 紧密集成,并与 Python 类似,提供了大量的标准程序包库:从安排数据库作业时间 (DBMS_SCHEDULER),到自动查询 阅读全文
posted @ 2012-08-09 13:58 苍术厚朴 阅读(4535) 评论(0) 推荐(1)
摘要:1.游标和游标的优点 在数据库中,游标是一个十分重要的概念。游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。如果曾经用 C 语言写过对文件进行处理的程序,那么游标就像您打开文件所得到的文件句柄一样,只要文件打开成功,该文件句柄就可代表该文件。对于游标而言,其道理是相同的。可见游标能够实现按与传统程序读取平面. 阅读全文
posted @ 2012-08-09 13:32 苍术厚朴 阅读(2604) 评论(0) 推荐(0)
摘要:1、用来插入大量测试数据的存储过程CREATE OR REPLACE PROCEDURE INSERTAMOUNTTEST(ST_NUM IN NUMBER,ED_NUM IN NUMBER)ISBEGINdeclare i number;beginFOR i IN ST_NUM..ED_NUM LOOPINSERT INTO tb values(i,i,'3','3','3',100,'0');END LOOP;end;END;运行:sql>execute INSERTAMOUNTTEST(1,45000) -- 一次插入 阅读全文
posted @ 2012-08-09 13:12 苍术厚朴 阅读(431) 评论(0) 推荐(0)
摘要:本词条从基础知识、判断对象和应用技巧等方面,介绍了SQL(Structured Query Language)结构化查询语言的应用方法。创建数据库 创建之前判断该数据库是否存在 if exists (select * from sysdatabases where name='databaseName') drop database databaseName go Create DATABASE databasename删除数据库 drop database dbname备份sql server --- 创建备份数据的 device USE master EXEC sp_ad. 阅读全文
posted @ 2012-08-09 12:28 苍术厚朴 阅读(248) 评论(0) 推荐(0)
摘要:ubuntu默认并没有安装ssh服务,如果通过ssh链接ubuntu,需要自己手动安装ssh-server。判断是否安装ssh服务,可以通过如下命令进行:xjj-desktop:~$ ssh localhost ssh: connect to host localhost port : Connection refusedxjj@xjj-desktop:~$ ssh localhostssh: connect to host localhost port 22: Connection refused如上所示,表示没有还没有安装,可以通过apt安装,命令如下:xjj-desktop:~$ sud 阅读全文
posted @ 2012-08-09 11:33 苍术厚朴 阅读(2729) 评论(0) 推荐(0)
摘要:传统上,当需要为操作系统编写一些脚本时,人们常常会选用 Bash 或 Perl 脚本工具。这些工具易于使用,因而它们几乎变得无处不在,渗透到了包括 Oracle Database 在内的其他软件中,Oracle Database 在很大程度上依赖它们执行各种管理任务。但是最近,这种趋势有所转变,转向有利于 Python 这类较新的编程工具。Python 可为我们提供直观的开发以及各种灵活的数据结构和库。所有的现代 Unix 和 Linux 系统都附带了 Python;例如,Oracle Linux 6.1 附带了 Python 2.6.6。本教程将介绍对数据库管理员尤为有用的一些 Python 阅读全文
posted @ 2012-08-08 19:31 苍术厚朴 阅读(10911) 评论(1) 推荐(0)
摘要:mysql5.5 版本 新增了一个性能优化的引擎: PERFORMANCE_SCHEMA这个功能默认是关闭的:需要设置参数: performance_schema 才可以启动该功能,这个参数是静态参数,只能写在my.cnf 中不能动态修改。先看看有什么东西吧:mysql> use performance_schema;Database changedmysql> show tables ;+----------------------------------------------+| Tables_in_performance_schema |+----------------- 阅读全文
posted @ 2012-08-08 18:46 苍术厚朴 阅读(15956) 评论(0) 推荐(0)
摘要:大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个 information_schema数据库。information_schema数据库是做什么用的呢,使用WordPress博客的朋友可能会想,是不是安装模板添加的数据库呀?看完本片文章后,你就会对information_schema数据库有所了解。information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。在 MySQL中,把 inform 阅读全文
posted @ 2012-08-08 18:41 苍术厚朴 阅读(27489) 评论(7) 推荐(1)
摘要:在 Ubuntu 系统中有两种设置环境变量 PATH 的方法。第一种适用于为单一用户设置 PATH,第二种是为全局设置 PATH。第一种方法:在用户主目录下有一个 .bashrc 文件,可以在此文件中加入 PATH 的设置如下:export PATH=”$PATH:/your path1/:/your path2/…..”注意:每一个 path 之间要用 “:“ 分隔。注销重启 X 就可以了。第二种方法:在 /etc/profile中增加。PATH="$PATH:/home/zhengb66/bin"export PATH环 境变量是 和Shell紧密相关的,用户登录系统后 阅读全文
posted @ 2012-08-06 13:30 苍术厚朴 阅读(87242) 评论(1) 推荐(1)
摘要:IntroductionOracle Instant Client is a freeOracledatabase client. The current version is 11.2.0.1.0, and several versions back to 10.1.0.5 are available.Install RPMsDownload the Oracle Instantclient RPM files fromhttp://www.oracle.com/technetwork/database/features/instant-client/index-097480.html. E 阅读全文
posted @ 2012-08-06 13:25 苍术厚朴 阅读(2126) 评论(0) 推荐(0)
摘要:这一周,主要接触了学习了以下内容:1.oracle数据库从非归档状态转变为归档状态,还有一些操作oracle数据库的基本操作。2.mysql数据库,可能是自然而然地成为了这周学习的重点,从基本的操作数据库,到远端登录数据库,到远端用python脚本操作mysql数据库,因为测试过程中需要备份和恢复大的数据库,于是用python脚本不断地去添加数据,直到达到测试的要求。3.安装了红帽系统,并且在上面装了mysql数据库,刚安装的时候出现包冲突,然后用命令yumremove 掉就可以了,在红帽系统上使用rpm-ivh 来安装软件,rpm-e卸载软件。在oracle官网上下载mysql数... 阅读全文
posted @ 2012-08-03 18:05 苍术厚朴 阅读(182) 评论(0) 推荐(0)
摘要:用mysql很长时间,limit是分页的一个好工具,select * from table_a where num = 4limit 1,10,select * from table_a where num = 4limit 10,10,今天突然发现有些数据怎么也不会出来也就是说第一页的数据会重复显示在第二页,有些在数据库的数据不会被查询出来这样就造成了数据的缺失,如果用select * from table_a where num = 4 order by num1 ASClimit 1,10,select * from table_a where num = 4 order by num1 阅读全文
posted @ 2012-08-03 15:14 苍术厚朴 阅读(21075) 评论(1) 推荐(3)
摘要:在网上有很多关于这个的解决方案,我也采用了写的比较详细的如: 1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"CODE:mysql -u root -p123mysql>use mysql;mysql>update user set host = '%' where user 阅读全文
posted @ 2012-08-03 14:11 苍术厚朴 阅读(20863) 评论(0) 推荐(1)
摘要:这里我先给大家大致讲解下VBox的网络配置及应用。VirtualBox的提供了四种网络接入模式,它们分别是:1、NAT 网络地址转换模式(NAT,Network Address Translation)2、Bridged Adapter 桥接模式3、Internal 内部网络模式4、Host-only Adapter主机模式下面我们分别对这四种网络模式进行分析解释:第一种 NAT模式解释:NAT模式是最简单的实现虚拟机上网的方式,你可以这样理解:Vhost访问网络的所有数据都是由主机提供的,vhost并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Vhost的存在。虚拟机与... 阅读全文
posted @ 2012-08-03 09:29 苍术厚朴 阅读(930) 评论(0) 推荐(0)
摘要:#!/usr/bin/pythonimport smtplibfrom email.Message import Messagefrom time import sleepsmtpserver='smtp.gmail.com'username='hzhida95@gmail.com'password='*******'from_addr='hzhida95@gmail.com'to_addr='hzhida2011@gmail.com'cc_addr='1241224798@qq.com'messa 阅读全文
posted @ 2012-08-02 18:50 苍术厚朴 阅读(1399) 评论(0) 推荐(0)
摘要:#!/usr/bin/env pythonimport sys,os,timefrom ftplib import FTPmysql_usr='root'mysql_pwd='dingjia'mysql_db='test'mysql_charset='gb2312'bk_path='/home/hzhida/FTPFile/backup'logs_path=bk_path+'Logs'def writeLogs(filename,contents): f=file(filename,'aw& 阅读全文
posted @ 2012-08-02 18:33 苍术厚朴 阅读(2932) 评论(0) 推荐(1)
摘要:1、安装$ sudo apt-get install vsftpd2、设置 vsftpd.conf文件(查找对应项,去掉注释#,或更改成自定义值)备份vsftpd.conf文件$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old编辑vsftpd.conf文件vsftp.conf文件的介绍:listen=YES#listen_ipv6=YESanonymous_enable=YES 允许匿名登入#local_enable=YES 允许本地用户登入#write_enable=YES 允许本地用户修改和删除#local_umask=022 FTP上传文件权限 阅读全文
posted @ 2012-08-02 15:23 苍术厚朴 阅读(4388) 评论(0) 推荐(0)
摘要:1.import MySQLdb;2.与mysql数据库建立连接:con=MySQLdb.connect(user='root',db='mysql',passwd='dingjia',host='localhost')3.当没有游标cursor对象时候,连接对象可以使用query()方法,执行sql查询con.query('create database test')4.使用游标对象和execute()方法来执行sqlcur=con.cursor() 返回游标对象cur.execute('create t 阅读全文
posted @ 2012-08-02 13:58 苍术厚朴 阅读(28919) 评论(0) 推荐(1)
摘要:1、进去指定schema数据库(存放了其他的数据库的信息)use information_schema2、查询所有数据的大小selectconcat(round(sum(DATA_LENGTH/1024/1024),2),'MB') asdatafromTABLES3、查看指定数据库的大小比如说 数据库apoylselectconcat(round(sum(DATA_LENGTH/1024/1024),2),'MB') asdatafromTABLES wheretable_schema='apoyl';4、查看指定数据库的表的大小比如说 数据库 阅读全文
posted @ 2012-08-02 13:38 苍术厚朴 阅读(451) 评论(0) 推荐(0)
摘要:首先安装MySQL数据库,在Ubuntu可以直接apt-get mysql,对于其他的系统,如Redhat 可以到oracle官网上下载mysql.rpm安装文件 使用命令rpm -ivh mysql-server.rpm 和rpm -ivh mysql-client.rpm 进行安装 假如发生包mysql-lib冲突,可以yum erase 或者yum remove 来把冲突的包给去掉。 ubuntu 系统:sudo apt-get install python-mysqldb 下载 MySQL-python-1.2.3.tat.gz (下载地址Google下) 解压后 sudo p... 阅读全文
posted @ 2012-08-02 11:22 苍术厚朴 阅读(2953) 评论(0) 推荐(0)
摘要:这两个星期,看了好多的电视剧,因为在家中看了两集的《寻秦记》,就好想把全部都看完,这个就是我的弊病了。这个电视剧展示了一个现代人回到秦统一六国前的时代,生活在当代的主人公与公元前200年的人当然是与众不同,气质非凡,知识渊博的,凭借他的聪明才智,任劳任怨,披荆斩麻,在古代秦朝出色地完成他的任务。于是 阅读全文
posted @ 2012-08-01 23:33 苍术厚朴 阅读(411) 评论(0) 推荐(0)
摘要:登录mysql数据库,加入什么都不懂的时候,在命令行里面应该输入:mysql --help;通过看帮助来弄懂怎么登录。有帮助可以看出 mysql的用法是Usage: mysql [OPTIONS] [database] 继而 说明options的详细内容。如:-h, --host=name Connect to host.-u, --user=name User for login if not current user.-p, --password[=name] Password to use when connecting to server. If password is ... 阅读全文
posted @ 2012-08-01 19:01 苍术厚朴 阅读(366) 评论(0) 推荐(0)
摘要:1.使用本地身份验证登录数据库:sqlplus /nolog conn /as sysdba2.查看登录的数据库: select name from V$DATABASE;3.切换数据库为charge,设置环境变量 : set ORACLE_SID=CHARGE4.查看是否为归档模式:archive log list;5.关闭数据库:shutdown immediate6.启动数据库到mount状态:startup mount;7.修改数据库归档模式:alter database archivelog;8.启动数据库:alter database open;9.定义归档的位置:alters.. 阅读全文
posted @ 2012-08-01 18:44 苍术厚朴 阅读(330) 评论(0) 推荐(0)
摘要:oracle 常见操作:1、su – oracle 不是必需,适合于没有DBA密码时使用,可以不用密码来进入sqlplus界面。2、sqlplus /nolog 或sqlplus system/manager 或./sqlplus system/manager;3、SQL>connect / as sysdba ;(as sysoper)或connect internal/oracle AS SYSDBA ;(scott/tiger)conn sys/change_on_install as sysdba;4、SQL>startup; 启动数据库实例5、 查看当前的所有数据库: s 阅读全文
posted @ 2012-08-01 18:32 苍术厚朴 阅读(182) 评论(0) 推荐(0)