电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python接口自動化框架實戰

瀏覽:2日期:2022-07-01 14:04:27

python接口測試的原理,就不解釋了,百度一大堆。

先看目錄,可能這個框架比較簡單,但是麻雀雖小五臟俱全。

python接口自動化框架實戰

各個文件夾下的文件如下:

python接口自動化框架實戰

一.理清思路

我這個自動化框架要實現什么

1.從excel里面提取測試用例

2.測試報告的輸出,并且測試報告得包括執行的測試用例的數量、成功的數量、失敗的數量以及哪條成功了,失敗的是哪一個,失敗的原因是什么;測試結果的總體情況通過圖表來表示。

3.測試報告用什么形式輸出,excel,還是html,還是其他的,這里我選擇了excel

4.配置文件需要配置什么東西

5.哪些東西可以放入公共函數直接調用。

好的這些思路理清楚之后就可以動手了。

二.首先是配置文件和excel測試用例的設計

數據與代碼分離,也就是數據性的需要作為配置文件可以隨時修改。如:接口url,網站登錄權限驗證信息,數據庫信息。全部存入config文件夾下

下面是具體的配置文件信息:

API_url.txt

inserthouse=http://IP:port/scp-mdmapp/house/insertHousedeletehouse=http://IP:port/scp-mdmapp/house/deleteHousebatchdeletehouse=http://IP:port/scp-mdmapp/house/batchdeleteHousegethouse=http://IP:port/scp-mdmapp/house/getHouseupdatehouse=http://IP:port/scp-mdmapp/house/updateHouse

Authorization.txt

joxNTIxMTg3MTA3fQ.JyeCMMsM0tOr7exORUNpkZ-FtprjpNBhMtFjUAdnYDnhRfaR6qi3fqVkybyb245zONiTxLOw8jBR60oNUVEbKx9_cut6uDIZMUFYOx6hyyBkY9IXJlutYdo4sSMAKF_MjKsZY7bZNXLHzN0juiezn6iN0hbnbhS-Kv2LYLLZLTs

我的測試用例的設計如下:

notes是測試用例摘要。

python接口自動化框架實戰

三.公共函數存在common文件夾下

get_authorization.py

#從配置文件獲取訪問權限信息def get_Authorization():fp = open(’D:personlearnpyHDapiconfigAuthorization.txt’)info = fp.read()fp.close()return info

public.py

import os,xlrd,xlwt,time #通過配置文件里的接口名稱來獲取接口url的函數def get_url(api_name):fp = open(’D:personlearnpyHDapiconfigAPI_url.txt’)#按行讀取接口url配置文件api_infos = fp.readlines()fp.close()#通過for循環來遍歷配置文件里的每一個url,并且返回傳入的接口名稱相應的urlfor api in api_infos:#去除因為讀取產生的換行空格等api_f = api.strip(’ rnt’)api_c = api_f.split(’=’)if api_name == api_c[0]:return api_c[1] #通過傳入用例名稱的文件和excel頁面來讀取測試用例def get_case(filename,sheetnum):case_dir=’D:personlearnpyHDapitestcase_excel’ + ’’ + filename + ’.xlsx’ datas = xlrd.open_workbook(case_dir)table = datas.sheets()[sheetnum]nor = table.nrowsnol = table.ncolsreturn nor,table #通過xlwt庫來設計測試報告并寫入excel里面def write_report():workbook = xlwt.Workbook(encoding=’utf-8’)#在excel測試報告表格中創建名叫housemanage的頁面worksheet = workbook.add_sheet(’housemanage’)#設置字體格式為居中對齊alignment = xlwt.Alignment()alignment.horz = alignment.HORZ_CENTERalignment.vert = alignment.VERT_CENTERstyle = xlwt.XFStyle()style.alignment = alignment#具體的合并哪些單元格并且寫入相應的信息worksheet.write_merge(0,0,0,7,’測試報告(housemanage)’,style)worksheet.write_merge(1,10,0,0,’house_manage’,style)worksheet.write_merge(1,2,1,1,’insethouse’,style)worksheet.write_merge(3,4,1,1,’updatehouse’,style)worksheet.write_merge(5,6,1,1,’deletehouse’,style)worksheet.write_merge(7,8,1,1,’gethouse’,style)worksheet.write_merge(9,10,1,1,’updatehouse’,style)worksheet.write_merge(1,2,11,11,’total_result’,style)worksheet.write(1,2,’notes’)worksheet.write(2,2,’detail’)worksheet.write(3,2,’notes’)worksheet.write(4,2,’detail’)worksheet.write(5,2,’notes’)worksheet.write(6,2,’detail’)worksheet.write(7,2,’notes’)worksheet.write(8,2,’detail’)worksheet.write(9,2,’notes’)worksheet.write(10,2,’detail’)worksheet.write(1,12,’pass’)worksheet.write(1,13,’faild’)#最后返回worksheet,workbook兩個參數,因為在測試測試用例和運行文件中需要用到的兩個參數return worksheet,workbook四.測試用例的編寫

test_inserthouse.py

import requests,unittest,os,time,jsonfrom common import public,get_authorization #房屋添加用例,通過傳入public里wirte_sheet函數返回的參數wooksheet,將用例的執行結果寫入到測試報告中def test_inserthouses(worksheet,workbook):url = public.get_url(’inserthouse’)nor,table = public.get_case(’house’,0)Authorization = get_authorization.get_Authorization()a = 2xu = 0yu = 0#用for循環來實現遍歷一個excel頁面的所有測試用例for i in range(1,nor):#獲取excel表格里面需要給接口傳入的參數houseNum = table.cell_value(i,0)orgUuid = table.cell_value(i,1)floor = table.cell_value(i,2)houseUseFor = table.cell_value(i,3)residentNum = table.cell_value(i,4)emergencyPhone = table.cell_value(i,5)expect_code = table.cell_value(i,6)expect_message = table.cell_value(i,7)notes = table.cell_value(i,8)payment = table.cell_value(i,11)#接口body需要傳入的參數data = {’houseNum’:houseNum,’houseUseFor’:houseUseFor,’orgUuid’:orgUuid,’residentNum’:residentNum,’floor’:floor,’emergencyPhone’:emergencyPhone,’payment’:payment} #請求頭,網站加了登陸驗證之后需要在請求頭傳入Authorization參數headers={’Accept’:’application/json’,’Content-Type’:’application/json’,’Authorization’:Authorization}a+=1worksheet.write(1,a,notes) data = json.dumps(data) r = requests.post(url,data=data,headers=headers)#將字符串格式轉換為字典b = eval(r.text)m = b.get(’code’)n = b.get(’message’)k = b.get(’data’)#判斷接口測試通過與否if m==expect_code and n==expect_message:worksheet.write(2,a,’pass’)xu += 1else:worksheet.write(2,a,’faild:%s’%k)yu += 1#測試用例執行完后,返回用例成功與失敗的數量return xu,yu

test_updatehouse.py

import requests,unittest,os,time,jsonfrom common import public,get_authorization #房屋編輯測試用例def test_updatehouses(worksheet,workbook):nor,table = public.get_case(’house’,4)Authorization = get_authorization.get_Authorization()url = public.get_url(’updatehouse’)a = 2x = 0y = 0for i in range(1,nor):houseNum = table.cell_value(i,0)orgUuid = table.cell_value(i,1)uuid = table.cell_value(i,2)houseUseFor = table.cell_value(i,3)residentNum = table.cell_value(i,4)emergencyPhone = table.cell_value(i,5)expect_code = table.cell_value(i,6)expect_message = table.cell_value(i,7)notes = table.cell_value(i,8)floor = table.cell_value(i,9)payment = table.cell_value(i,11) data = {’houseNum’:houseNum,’houseUseFor’:houseUseFor,’orgUuid’:orgUuid,’floor’:floor,’residentNum’:residentNum,’uuid’:uuid,’emergencyPhone’:emergencyPhone,’payment’:payment} headers={’Accept’:’application/json’,’Content-Type’:’application/json’,’Authorization’:Authorization} a+=1worksheet.write(3,a,notes) data = json.dumps(data) r = requests.post(url,data=data,headers=headers)b = eval(r.text)m = b.get(’code’)n = b.get(’message’)k = b.get(’data’)if m==expect_code and n==expect_message:worksheet.write(4,a,’pass’)x += 1else:worksheet.write(4,a,’faild:%s’%k)y += 1return x,y五.通過對公共函數、測試用例的設計聯合的思考應該在執行文件里面做什么,實現什么。

本來我想將執行文件單獨放置于HDapi-auto-test的根文件下的,可是將測試通過與不通過的數量寫入到測試報告里面,就必須要調用公共函數的方法,由于放置在根文件夾下與公共函數隔了一個文件夾無法調用( 本鳥不會調用),所以不得不將執行文件放置于測試用例文件夾下了,好在文件名還是比較好區分也比較好尋找,另外我還想加上自動發送郵件的功能,這里不寫了,其實發送郵件很簡單隨便找幾個例子就OK了,ps:代碼比較low,都沒有封裝,直接暴力簡單執行。代碼如下:

from common import publicimport test_inserthouse,test_updatehouseimport timefrom pychartdir import *#從公共函數調用excel的寫入方法worksheet,workbook = public.write_report() #測試用例的執行,并且返回x:成功的數量,y:失敗的數量xu,yu = test_inserthouse.test_inserthouses(worksheet,workbook)x,y = test_updatehouse.test_updatehouses(worksheet,workbook)#得到成功與失敗的總數量xr = x+xuyr = y+yu#將成功與失敗的數量寫入的excel的固定表格中worksheet.write(2,12,xr)worksheet.write(2,13,yr)#獲取當前的時間并以制定的格式返回now = time.strftime(’%Y-%m-%d %H_%M_%S’)#測試報告輸出的地址report_dir = ’D:personlearnpyHDapireport’#拼接出測試報告名filename =report_dir + now + ’apiresult.xlsx’workbook.save(filename) #通過pychart庫實現圖形處理,生成測試報告總覽圖----具體的參數設計可以參考pychart庫的文檔data = [yr, xr]labels = ['faild', 'pass']c = PieChart(280, 240)c.setPieSize(140, 130, 80)c.addTitle('api_result')c.set3D()c.setData(data, labels)c.setExplode(0)c.makeChart(report_dir+now+'apiresult.png')六.奉上測試報告輸出

本來想將生成的圖片放進excel測試報告里面的,奈何能力有限,沒辦法將圖片放進去,智能單獨存為一個png文件了

圖表總覽:

python接口自動化框架實戰

excel測試報告情況:

python接口自動化框架實戰

到此這篇關于python接口自動化框架實戰 的文章就介紹到這了,更多相關python接口自動化內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 青岛成人高考_山东成考报名网 | 六维力传感器_六分量力传感器_模腔压力传感器-南京数智微传感科技有限公司 | 纸箱抗压机,拉力机,脂肪测定仪,定氮仪-山东德瑞克仪器有限公司 | 不锈钢/气体/液体玻璃转子流量计(防腐,选型,规格)-常州天晟热工仪表有限公司【官网】 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 二手电脑回收_二手打印机回收_二手复印机回_硒鼓墨盒回收-广州益美二手电脑回收公司 | 全自动在线分板机_铣刀式在线分板机_曲线分板机_PCB分板机-东莞市亿协自动化设备有限公司 | 维泰克Veertek-锂电池微短路检测_锂电池腐蚀检测_锂电池漏液检测 | 真丝围巾|真丝丝巾|羊绒围巾|围巾品牌|浙江越缇围巾厂家定制 | 100国际学校招生 - 专业国际学校择校升学规划| 铆钉机|旋铆机|东莞旋铆机厂家|鸿佰专业生产气压/油压/自动铆钉机 | 游动电流仪-流通式浊度分析仪-杰普仪器(上海)有限公司 | 凝胶成像仪,化学发光凝胶成像系统,凝胶成像分析系统-上海培清科技有限公司 | 氧氮氢联合测定仪-联测仪-氧氮氢元素分析仪-江苏品彦光电 | 宝元数控系统|对刀仪厂家|东莞机器人控制系统|东莞安川伺服-【鑫天驰智能科技】 | 橡胶电子拉力机-塑料-微电脑电子拉力试验机厂家-江苏天源 | 湖南教师资格网-湖南教师资格证考试网 | 河北码上网络科技|邯郸小程序开发|邯郸微信开发|邯郸网站建设 | 衬塑设备,衬四氟设备,衬氟设备-淄博鲲鹏防腐设备有限公司 | 阿里巴巴诚信通温州、台州、宁波、嘉兴授权渠道商-浙江联欣科技提供阿里会员办理 | 红外光谱仪维修_二手红外光谱仪_红外压片机_红外附件-天津博精仪器 | 北京四合院出租,北京四合院出售,北京平房买卖 - 顺益兴四合院 | 电子巡更系统-巡检管理系统-智能巡检【金万码】 | 上海瑶恒实业有限公司|消防泵泵|离心泵|官网 | 桁架楼承板-钢筋桁架楼承板-江苏众力达钢筋楼承板厂 | 釜溪印象网络 - Powered by Discuz! | 聚丙烯酰胺_阴离子_阳离子「用量少」巩义亿腾厂家直销,售后无忧 聚合甘油__盐城市飞龙油脂有限公司 | 雾度仪_雾度计_透光率雾度仪价格-三恩时(3nh)光电雾度仪厂家 | 幂简集成 - 品种超全的API接口平台, 一站搜索、试用、集成国内外API接口 | 光栅尺_Magnescale探规_磁栅尺_笔式位移传感器_苏州德美达 | 北京企业宣传片拍摄_公司宣传片制作-广告短视频制作_北京宣传片拍摄公司 | 聚氨酯催化剂K15,延迟催化剂SA-1,叔胺延迟催化剂,DBU,二甲基哌嗪,催化剂TMR-2,-聚氨酯催化剂生产厂家 | 光照全温振荡器(智能型)-恒隆仪器 | 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 粘度计维修,在线粘度计,二手博勒飞粘度计维修|收购-天津市祥睿科技有限公司 | 诸城网站建设-网络推广-网站优化-阿里巴巴托管-诸城恒泰互联 | 济南电缆桥架|山东桥架-济南航丰实业有限公司 | 米顿罗计量泵(科普)——韬铭机械 | 超声波清洗机_大型超声波清洗机_工业超声波清洗设备-洁盟清洗设备 | 热镀锌槽钢|角钢|工字钢|圆钢|H型钢|扁钢|花纹板-天津千百顺钢铁贸易有限公司 |