轉換文檔的接口測試

第一次寫接口測試,還不是很熟練。list,dict,for遍歷是python基礎語法裏最經常使用也是最基礎的,仍是須要多加練習。另外,文件的讀寫操做,字符串的使用以及api等都是須要不斷鞏固練習的。python

(1)文件讀寫操做:
file_path = 「D:\\python_file\\generalseven.txt」
with open(file_path,'r')as f:
      print(f.read())

read()函數,該函數會會一次性讀取文件的所有內容,若是能確保文件的大小,天然能夠。但若文件過大,內存就爆了.
因此,能夠反覆調用read(size)方法,每次最多讀取size個字節的內容;也可調用 readline() 每次讀取一行內容;
而調用readlines()能夠一次讀取全部內容並按行返回list。總之,根據需求來。
(2)建立新文件並寫入:
file_path = 「D:\\python_file\\generalseven.txt」 
with open(file_path,'w')as f:
      f.write("hello generalseven")

r : 以只讀方式打開文件,文件的指針會放在文件的開頭。這是默認模式。json

w:打開一個文件只用於寫入。若是該文件已存在則將其覆蓋。若是該文件不存在,建立新文件。api

a:打開一個文件用於追加。若是該文件已存在,文件指針會放在文件的結尾,新的內容將會被寫入到已有內容以後。若是該文件不存在,建立新文件進行寫入。app

 

需求:函數

①在給定的data.txt文檔裏篩選出「.ppt」、「.pptx」格式,須要判斷是不是ppt/pptx文件,返回list類型;post

②使用list裏的數據,調用接口,成功調用返回狀態爲success,失敗爲fail,成功轉換文檔的文件地址列表,以及時間,返回字典類型;測試

③獲取統計接口成功轉換的總時間,平均時間,失敗文檔的列表存到list中,結束的時候存到文件中。spa

返回狀態:指針

# 成功調用返回:{u'status': u'success', u'file': u'http://generalseven.com/d9ee37816cacc11c51.pdf', u'time': 3.9380002021686955}
# 失敗調用返回:{u'status': u'fail', u'detail': u'download doc fail: d9e4920f2cacc11c513.ppt', u'time': 1.312333998302459717}
blog

import request#導入須要的庫

file_path = "C:\\Users\\Administrator\\Desktop\\data.txt"#定義文檔的路徑

def get_doc_from_file(file_path):#篩選所需格式文檔的函數
    files = []#定義一個空文件
    with open(file_path,'r') as f:#打開文件
        lines = f.readlines()#讀取文件的每一行
        for line in lines:
            line = line.strip()#去除空格
            x = line.split(".")[-1].rstrip()
            if x in ['ppt','pptx']:
                files.append(line)#往空文件裏添加符合條件的行
    return files#返回文件,類型爲list

def convert_test(file_name):#使用list,調用接口
    doc,page = (file_name,15)
    data = {'doc_id':doc,'page':1}
    result = requests.post("http://...........",data).json()
    if result['status'] == 'fail':
        return result
    else:
        return result


if __name__ == '__main__':
    files = get_doc_from_file(file_path)
    total_time = 0
    i = 0
    Lists = []
    for f in files[:2]:
        a = convert_test(f)#使用變量,爲了調用函數裏面的參數值
        if a['status'] == 'success':#判斷狀態成功的狀況下,統計總時間和平均時間
            i += 1
            time = a['time']#由於a返回類型是字典,time就是每一條轉換狀態下所須要的時間
            total_time += time
        else:
            fail_file = a['detail']#轉換失敗文檔的文件名
            Lists.append(fail_file)

    with open('C:\\Users\\Administrator\\Desktop\\newpath.txt','w') as new_file:
        for j in Lists:
            new_file.write(j)
            new_file.write('\n')
    print total_time
    print total_time/i
相關文章
相關標籤/搜索