Python xlrd/xlwt對excel進行操作
阿新 • • 發佈:2019-02-17
摘要:
python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。
主要內容:
先上程式碼
automation_interface.py :
# -*- coding:utf-8 -*-
import xlrd
import xlwt
import automation_method
# excel 操作
class AutoTest:
def __init__(self):
pass
# xlrd讀取資料
def read_text(self):
data_xls = []
xls = xlrd.open_workbook(u"介面自動化測試用例.xlsx" )
table = xls.sheet_by_name(u"介面測試報告")
num_row = table.nrows
for i in range(num_row):
id = table.row(i)[0].value
title = table.row(i)[1].value
body = table.row(i)[2].value
parameter = table.row(i)[3].value
expect_result = table.row(i)[4 ].value
actual_result = table.row(i)[5].value
test_result = table.row(i)[6].value
data = (id, title, body, parameter, expect_result, actual_result, test_result)
data_xls.append(data)
return data_xls
# xlwt寫入資料
def write_text(self):
wbk = xlwt.Workbook(encoding='utf-8' )
sheet = wbk.add_sheet(u'介面測試報告')
read_xls = self.read_text()
for i in range(len(read_xls)):
for m in range(len(read_xls[i])):
if m == 5 and i > 3:
sheet.write(i, m, str(automation_method.test_interface(read_xls[1][1],
read_xls[i][2],
read_xls[i][3],
read_xls[1][3])))
else:
sheet.write(i, m, read_xls[i][m])
wbk.save(u"介面自動化測試用例.xlsx")
if __name__ == '__main__':
a = AutoTest()
a.write_text()
automation_method.py :
# -*- coding:utf-8 -*-
from binascii import a2b_hex
from Crypto.Cipher import AES
from Crypto import Random
import requests
import os
# AES加密
def aes(timestamp):
BS = 16
pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
key_str = "D8EF40495D6C6CD171BFA4403516B035"
plain = timestamp
iv = Random.new().read(AES.block_size)
obj = AES.new(a2b_hex(key_str),AES.MODE_ECB,iv)
plain = pad(plain)
result = obj.encrypt(plain).encode("hex").upper()
return result
# APP介面請求
def test_interface(head_app, body, payload, parameter_app):
url = head_app + str(body) + "?" + str(payload) + parameter_app
headers = {'content-type': 'application/json'}
try:
r = requests.post(url, headers=headers)
return r.json()
except:
return {"status": url}
# kill WPS
def kill_wps():
cmd = 'taskkill /F /IM wpscloudsvr.exe'
os.system(cmd)
對應的excel:
總結:
做了一年的介面測試以及介面自動化測試,想把這方面的工作簡單化,讓不懂程式碼的測試人員也可以進行該方面的工作,寫一個基於excel介面測試自動化工具,最後以失敗告終,主要原因還是因為介面請求引數不確定性,以及引數是其他介面返回值,對於這個難點,後期下定決心了再進行下去。
陽臺測試: 239547991(群號)