python接口自動化測試--批量讀取數據


   為了便於維護,python接口自動化測試用例可以利用xlrd模塊讀取excal表格進行數據分離。我們可以利用xlrd模塊的row_values()和cell_value()兩種方法讀取Excal表格。

一、首先,寫一個運行測試用例的Test_Main類:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import requests

import unittest import json
class TestDemo(unittest.TestCase):
def setUp(self):
pass

def test_Demo1(self):

  xmlhead = xxxxxx

  xmlbody = xxxxxx

  data = {'xmlhead' : xmlhead, 'xmlbody' : xmlbody} #xmlhead、xmlbody為xml格式的報文頭、報文體

  url = 'http://xxxxxx'

  result = requests.post(url,data=data)

  try:
    self.assertEqual(result.status_code, 200)
    print ("用例測試通過")
except Exception as e:
   print e

  print "用例測試不通過"   #之前寫的是格式為print (e, '用例測試不通過'),打印出來的語句非utf-8格式,因此在此寫了兩個print

 def tearDown(self):
  pass

if __name__ == '__main__':
  unittest.run()

代碼運行正常
二、開始寫讀取excal的公共方法,這里運用row_values()方法批量讀取單元格的值。如下創建python文件read_excal:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import xlrd
class ReadXml(object):
def __init__(self,path = ''):
   self.url = xlrd.open_workbook(path) #打開文件


def get_Datasheet_by_name(self,sheet):
   self.sheet = self.url.sheet_by_name(sheet) #獲取sheet頁的名字
   return self.DataList()


def DataList(self):
   list = []
   for row in range(0, self.sheet.nrows): #nrows()方法為獲取某一sheet頁的行數
     resu = self.sheet.row_values(row) #row_values()批量獲取單元格數據
    list.append(resu)
   return list
三、讀取excal文件公共方法寫完后,運行代碼無問題。再寫一個調用read_excal的python文件base:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import read_excal

def get_data(self,sheet,row,col):

  filepath = read_excal.ReadXml('D:\xx\xx\\xx.xlsx')  #在具體文件名前面可以加‘\’,但在本地運行時有時加一個'\'保存,所以加了'\\'確保程序正常運行

  ResultData = filepath.get_Datasheet_by_name(sheet)

  return ResultData

代碼運行正常

四、現在可以對Test_Main類進行微調了,部分代碼如下:

# -*- coding: UTF-8 
-*- # -*- coding: cp936 -*-
import requests
import unittest
import base #導入base模塊
class TestDemo(unittest.TestCase):
def setUp(self):
self.xmlhead = base.get_data('xmlhead') #讀取'xmlhead'頁的所有數據
self.xmlbody = base.get_data('xmlbody') #讀取'xmlbody'頁的所有數據
def test_Demo1(self):
xmlhead = self.xmlhead[0][0] #獲取'xmlhead'頁的第1行第1列數據
xmlbody = self.xmlbody[13][1] #獲取'xmlbody'頁的第14行第2列數據
data = {'xmlhead' : xmlhead, 'xmlbody' : xmlbody} #xmlhead、xmlbody為xml格式的報文頭、報文體
..............................
..............................
運行代碼,程序調試成功
至此,批量讀取Excal單元格值的方法就寫到這里。
 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM