您的位置:首页 > 编程语言 > Python开发

python学习

2014-03-18 10:06 519 查看
python单元测试unittest

python单元测试unittest - 像风一样的自由 - 博客频道 - CSDN.NET http://blog.csdn.net/five3/article/details/7104466
python问题:IndentationError:expected an indented block错误解决

/article/1840774.html

查看当前目录

如果你启动了python,可以用这句话知道你的当前目录

import os
print os.path.abspath(".")


打开当前目录下的文件

def bbb():
import glob,os,re
filename333=input('enter file name:')
fobj=open(filename333,'r')
for lines in fobj:
print(lines),
fobj.close()  #close要与for循环平级,不然会报错:I/O operation on closed file python

>>> bbb()
enter file name:AS.txt
the words in AS.txt


def bbb(filename,filetype):#将方法改为可以在方法变量中直接输入文件名称的模式
import glob,os,re
file=str(filename)+'.'+str(filetype)
fobj=open(file,'r')
for lines in fobj:
print(lines),
fobj.close()

>>> bbb('AS','txt')
the words in AS.txt


没解决的(无法打开相应的文件,始终显示其实没有进入到这个文件夹内)

def aaa():
import os,glob,re
path='g:'
files=glob.glob('%s\\' % path)
for f in files:
filename=input('enter file name:')
if filename in files:
fobj=open(filename,'r')
for eachline in fobj:
print(eachline),
fobj.close()
break
else:print("Do not find it")


新增和读取一个文件

def a():
#!/usr/bin/env python
'makeTextFile.py--creat text file'
import os
ls=os.linesep
#get filename
while True:
fname=input('enter a filename:')
if os.path.exists(fname):
print("Error:'%s' already exists"%(fname))
else:break
#get file content (text) lines
all=[]
print("\n Enter lines('.' by itself to quit).\n")
#loop until user terminates input
while True:
entry=input('>')
if entry=='.':
break
else:all.append(entry)
#write lines to file with proper line-ending
fobj=open(fname,'w')
fobj.writelines(['%s%s'%(x,ls)for x in all])
fobj.close()
fobj2=open(fname,'r')
for lines in fobj2:
print(lines)
print('DONE!')


2014.3.26

if __name__ == "__main__":
def suite():
suite = unittest.TestSuite()
suite.addTest(project("testEnglish"))
suite.addTest(project("testSearch"))
suite.addTest(project("testComment"))
return suite
suite = suite()

# filetime=time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))
# filename='G:/Auto Test/test/log/'+filetime+'.html'
filename='G:/Auto Test/test/log/log.html'
f=open(filename,encoding='utf-8',mode='a') # a表示叠加,每次启动日志都叠加,w表示每次启动都新建一个文件
runner = HTMLTestRunner.HTMLTestRunner(
stream=f,
title='Test Result',
description='Test Report',
verbosity=2)
runner.run(suite)


logging.basicConfig(filename = os.path.join(os.getcwd(), 'log.txt'), level = logging.DEBUG)
log = logging.getLogger('root')


获取当前时间,当执行文件的目录,当前执行文件的名称

>>> filetime=time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))
>>> fileplace=os.getcwd()
>>> filetestname=sys.argv[0][sys.argv[0].rfind(os.sep)+1:].split('.py')[0]
>>> filename=os.path.join(fileplace+'/log/'+filetime+'-'+filetestname+'.html')
>>> filename
'G:\\Auto Test\\test/log/2014-03-27-09-39-06-222.html'


4.3

python获取list下标及其值

sequence=['spring','summer','autumn','winter']
for index,item in enumerate(sequence):
print(index,item)

0 spring
1 summer
2 autumn
3 winter


4.4

组合同一文件中不同testclass中的case

class AAA(unittest.TestCase):
……
class BBB(unittest.TestCase):
……

if __name__ == '__main__':
# unittest.main() # 用这个是最简单的,下面的用法可以同时测试多个类
# unittest.TextTestRunner(verbosity=2).run(suite1) # 这个等价于上述但可设置verbosity=2,省去了运行时加-v
suite1 = unittest.TestLoader().loadTestsFromTestCase(AAA)
suite2 = unittest.TestLoader().loadTestsFromTestCase(BBB)
suite = unittest.TestSuite([suite1, suite2])
unittest.TextTestRunner(verbosity=2).run(suite)


4.8 上传文件

#coding = utf - 8

from time import sleep
from selenium import webdriver
import logging, time, HTMLTestRunner,sys,os,xlrd,unittest

class upload(unittest.TestCase):
def setUp(self):
self.browser = webdriver.Chrome()
self.browser.get("http://172.16.115.65")
self.browser.switch_to_frame("trackerIframe")

def function1(self):
"从excel文件中获取文件名称,按名称上传文件"
# 打开数据文件;获取第一个表单;获取表单的第3列
xlrdfile = "G://Auto Test//success//testdata.xlsx"
book = xlrd.open_workbook(xlrdfile)
table = book.sheet_by_index(0)
colnames =  table.col_values(2)
for i in range(len(colnames)):
#获取该列中的每一个单元格
filename = table.cell_value(i, 2)
#文件路径拼接
file = "C:\\Users\\Public\\Pictures\\"+filename+".jpg"
self.browser.find_element_by_id("updateVersionTable").find_element_by_name("file").send_keys(file)
print("上传 %s 成功"%filename)
sleep(1)

def function2(self):
"直接读取固定目录下的文件"
# 获取执行文件对应data目录下的文件列表
fileplace = os.getcwd()+"\\data\\"
files = os.listdir(fileplace)
for  i in range(len(files)):
if ".jpg" in files[i]:
file = fileplace+files[i]
self.browser.find_element_by_id("updateVersionTable").find_element_by_name("file").send_keys(file)
print("上传成功"+files[i])
sleep(1)

def tearDown(self):
self.browser.quit()

if __name__ == '__main__':
filename = 'G:\\Auto Test\\success\\log\\file_upload_log.html'
f = open(filename, encoding = 'utf-8', mode = 'a')
suite = unittest.TestSuite()
suite.addTest(upload("function1"))
suite.addTest(upload("function2"))
runner = HTMLTestRunner.HTMLTestRunner(stream = f, title = 'Test Result', verbosity = 2)
runner.run(suite)
f.close()

'''
fileplace = "C:\\Users\\Public\\Pictures\\Sample Pictures"
files = os.listdir(fileplace)
filesneed = []
for i in range(len(files)):
if ".jpg" in files[i]:
file = fileplace+files[i]
browser.find_element_by_id("updateVersionTable").find_element_by_name("file").send_keys(file)
sleep(3)'''
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: