背景:
自動化測試除了驗證系統功能外,還能夠為測試人員根據測試要求造數據實現測試需要!但是一般的自動化測試,都是在編寫腳本的時候,寫死在程序里的。所以本文是為了在滿足系統操作流程的基礎上,根據測試的要求實現測試數據的編寫。
本文涉及兩個新的知識點內容:
1. 讀取excel數據
2. python數據庫讀寫
2.1 創建一個簡單的表
一、編寫思路:
從需求出發,主要找到兩個關鍵字:批量、要求、數據。考慮到兩種實現方式,1. 頁面錄入 2. excel數據填寫;考慮到頁面操作雖然看上去很方便!但是每次都需要重新編寫,而且實現批量操作也很難,最重要的是,開發成本太大!要測試人員編寫一個完整的測試網頁!第一步確認了:使用excel獲取造數據需求。
數據記錄在excel中,獲取數據考慮到兩種方式:1. 將excel中的數據保存在數據庫中,之后系統通過數據庫交互完成數據插入;2. 直接通過讀取excel數據對信息進行交互。我先是通excel讀取的方式操作了下,實驗后發現,如果每次調用數據的時候讀取excel,找數據的成本很大;批量操作根據行讀取數據,也比較難搞,當然做也是肯定能夠做的,只是成本比較大!所以,經過了2個小時的嘗試,果斷選擇了數據庫存取。
當然,數據庫的問題也很多!首先你需要搭建個本地數據庫;還需要創建數據表,創建字段,還可能涉及到字符集!不過,上述內容由於之前踩過坑了,如果需求可以看看博客里的自學mysql的方式。所以實現邏輯修改成了:讀取excel一次性存入數據庫,之后每次交互,都是系統與數據庫之間進行交互。
實現的第一個小步:excel讀取數據,並存入數據庫。
分解動作1:讀取excel。
分解動作1.1:引入讀取excel庫:
import xlrd
分解動作1.2:打開指定文件
workbook = xlrd.open_workbook(Excel_Path) # excel文本舉例:u'D://自動化造數據模板.xlsx'
Sheet_Name = workbook.sheet_by_name(u'借款數據') # 定位excel中,名為“借款數據”的sheet頁
分解動作1.3:讀取列表數據
Term_Of_Loan = Sheet_Name.cell_value(1, 2) # 讀取excel中,第二行,第三列的數據
分解動作1.4:根據數據庫字段要求,修改文本屬性【未修改,插入數據庫提示格式錯誤】
Loan_Amount = int(Sheet_Name.cell_value(Count_Num, 3)) # int() 強制轉換為int型
分解動作2:將讀取的excel插入數據庫
在進行分解動作之前,需要先創建一個數據表,本人使用的是Navicat,設計表。之前雖然沒建過,但是也看到過豬跑,建表無非定義字段名、字段屬性、字段長度、添加備注。
分解動作2.1:引入數據庫
import pymysql
分解動作2.2:鏈接數據庫
db = pymysql.connect('localhost', 'root', '123456', 'test', charset='utf8')
分解動作2.3:創建游標
cursor = db.cursor()
分解動作2.4:編寫插入腳本:
query = 'insert into tb_bbh_dv_Invodata (ID, C_JKRDH,C_JKLX, C_JKQX, N_JKJE, N_NLV,N_JX, N_SXF, N_GLF, N_ZZSXF, N_QTJE, N_ZDTZJE, DT_CreatTime,B_SFCJ) values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)'
分解動作2.5:執行插入腳本
cursor.execute(query, (ID, JKR_ID, Type_Of_Loan, Term_Of_Loan, Loan_Amount, Annual_Interest_Rate, Increase_Interest, Service_Charge, Management_Expense, Debt_Service_Fee, Amount_Of_Investment, Maximum_Investment, Create_Time,'0'))
db.commit()# 這句有什么用?! 不加試試,能通過算你厲害
分解動作2.5.1:寫的時候遇到個問題,方法1,中有方法2,且,方法1和方法2同時使用到了數據庫。方法1沒有關閉數據庫,方法二再調用,可能有問題!所以呢,可以將方法1的數據庫連接,直接傳給方法二,這樣方法二只管調用,不需要考慮關閉數據庫。
分解動作2.6:關閉游標以及數據庫
小結:以上的兩套分解動作整合到一起,就能夠實現excel讀取數據,存入數據庫的功能,完整代碼如下:
如果還有問題未能得到解決,搜索887934385交流群,進入后下載資料工具安裝包等。最后,感謝觀看!