|
同桌的你 2018-09-14 19:54:14 一、首先建一個Test_Main類 #!/usr/bin/python # -*- coding: UTF-8 -*- import requests <br>import unittest class TestDenmo(unittest.TestCase): def setUp(self): pass def test_demo1(self): print ("用例一開始執(zhí)行") url = '' #此處填寫請求的url xmlhead = '' #工作中數據以json、xml為主,此處以xml格式為例 xmlbody = '' data = {'xmlhead' : xmlhead, 'xmlbody' : xmlbody} result = requests.post(url, data =data) try: self.assertEqual(result.status_code, 200) print ("用例一測試通過") except Exception as e: print e print "用例一測試不通過" def tearDown(self): pass if __name__ == '__main__': unittest.run() 二、現在開始寫讀取Excal指定單元格的方法了。建一個python文件Read_Excal: #!/usr/bin/python # -*- coding: UTF-8 -*- import xlrd class get_data(object): def __init__(self, path = ''): self.filepath = xlrd.open_workbook(path)#打開文件 def datasheet_by_name(self,sheet,row,col): self.sheetname = self.filepath.sheet_by_name(sheet) #打開Excal中sheet頁名稱為"sheet"的表格 self.data = self.sheetname.cell_value(row,col) #獲取第"row"行第"col"列的數據 return self.data<br> #以下代碼調試用,調試正常可刪掉或注釋掉 if __name__ == '__main__': filepath = get_data(path) #此處path填具體路徑 resultdata = filepath.datasheet_by_name(sheet,row,col) #此處三個參數賦予具體值 print resultdata 三、寫完讀取excal的get_data類后,可以封裝一個方法調用get_data.因此建一個python文件base,代碼如下: #!/usr/bin/python # -*- coding: UTF-8 -*- from Read_Excal import get_data def result_need(sheet,row,col): resudata = get_data(path).datasheet_by_name(sheet,row,col)#可以在此處賦予path值,也可在Test_Main類中賦值,為了簡便,個人感覺在此處賦值合適些 return resudata 四、寫完了調用get_data類的公共方法,咱們回過頭來看一下Test_Main類.可以把Test_Main類里的數據分離到Excal中,優(yōu)化代碼如下: #!/usr/bin/python # -*- coding: UTF-8 -*- import requests import unittest from base import result_need #導入公共方法base class TestDenmo(unittest.TestCase): def setUp(self): pass def test_demo1(self): print ("用例一開始執(zhí)行") url = result_need('url',0,0) #此次把URL放到Excal中進行讀取。為了便于維護和安全,也可把URL進行多次分離封裝后,放到setUp()方法中 xmlhead = result_need('xmlhead',0,0) xmlbody = result_need('xmlbody',13,0) data = {'xmlhead' : xmlhead, 'xmlbody' : xmlbody} result = requests.post(url, data =data) try: self.assertEqual(result.status_code, 200) print ("用例一測試通過") except Exception as e: print e print "用例一測試不通過" def tearDown(self): pass if __name__ == '__main__': unittest.run() 代碼運行成功,至此,所有參數數據和代碼分離。個人感覺cell_value()獲取指定單元格數據的方法,所使用的代碼更簡潔。自動化測試過程中,可以以此為模板添加用例。也可以在此代碼的基礎上繼續(xù)優(yōu)化,和前端配合開發(fā)一個適合自己公司的簡易自動化測試工具,那樣只改一下Excal里的參數,測試起來會更方便。 |
|
|