python学习

python单元测试unittest

python单元测试unittest - 像风一样的自由 - 博客频道 - CSDN.NET http://blog.csdn.net/five3/article/details/7104466

python问题:IndentationError:expected an indented block错误解决

http://blog.csdn.net/neilhappy/article/details/7724959

查看当前目录

如果你启动了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("
 Enter lines('.' by itself to quit).
")
    #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)'''
原文地址:https://www.cnblogs.com/poppyp/p/3607011.html