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

您的位置:首頁技術(shù)文章
文章詳情頁

python使用pytest接口自動化測試的使用

瀏覽:93日期:2022-06-22 11:18:14
簡單的設(shè)計思路 利用pytest對一個接口進(jìn)行各種場景測試并且斷言驗證 配置文件獨(dú)立開來(conf文件),實現(xiàn)不同環(huán)境下只需要改環(huán)境配置即可 測試的場景讀取excle的測試用例,可支持全量執(zhí)行或者自定義哪條用例執(zhí)行(用例內(nèi)帶加密變量); 接口入?yún)⑦€包含了加密的邏輯,所以需加一層加密處理用例的樣例:

python使用pytest接口自動化測試的使用

應(yīng)用的庫包含:

import pytestimport time, jsonimport base64, hmacimport hashlib, uuid, reimport requestsimport pandas as pd1. 先定義好conf配置代碼

def config_txt(file_name='config.txt'): data_head = list() data_tail = list() for line in open(file_name, encoding=’gb18030’, errors=’ignore’):head, sep, tail = line.partition(’=’)data_head.append(head.strip(’n ’))if tail.find(’#’) != -1: tail, tail_b, tail_c = tail.partition(’#’)data_tail.append(tail.strip(’n ’)) txt_data = dict(zip(data_head, data_tail)) heada, sepa, taila = txt_data['GATEWAY_URL'].partition(’/test_a’) txt_data[’HTTP_URI’] = '/test_a' + taila return txt_data

conf文件配置樣例:GATEWAY_URL = https://127.0.0.1:8051/test_a/adk #url鏈接地址zhu_KEY = test_key #用戶信息1zhu_SECRET = test_secret #用戶2zhu_ID = 18825176013 #用戶IDzhuLY_ID = 588347220 #用戶信息3

2. 簡單處理一下加密的處理,給后續(xù)持續(xù)調(diào)用

def md5(data_md5): data_md5 = hashlib.md5(data_md5.encode(encoding=’UTF-8’)).hexdigest() return data_md5def sha256(data_sha256): data_sha256 = hashlib.sha256(data_sha256.encode(encoding=’UTF-8’)).hexdigest() return data_sha256def hash_hmac(app_secret, msg, sha1): hmac_code = hmac.new(app_secret.encode(), msg.encode(), sha1).digest() return base64.b64encode(hmac_code).decode()3. 處理用例里面的加密變量,例如:請求參數(shù)md5(18812345678)先進(jìn)行數(shù)據(jù)預(yù)處理

def body_encrypt(data_encrypt): if data_encrypt.find('sha256(') != -1:sha_ss = re.findall(r'sha256[(](.+?)[)]', data_encrypt)for i in range(len(sha_ss)): data_encrypt = re.compile('sha256[(]' + str(sha_ss[i]) + ’[)]’).sub(str(sha256(sha_ss[i])), data_encrypt) if data_encrypt.find('md5(') != -1:md5_ss = re.findall(r'md5[(](.+?)[)]', data_encrypt)for i in range(len(md5_ss)): data_encrypt = re.compile('md5[(]' + str(md5_ss[i]) + ’[)]’).sub(str(md5(md5_ss[i])), data_encrypt) return data_encrypt4. 讀取excel文檔里面的用例數(shù)據(jù)做為測試場景

def excel_case(file_name='case_file2.xlsx', case_id='all'): # 讀取excel賬號及路由代理信息file_name data_excle = pd.read_excel(file_name, sheet_name=0, engine='openpyxl') df = pd.DataFrame(data_excle) if case_id != 'all':df_data = df[(df.case_id == case_id)].to_dict(’list’) else:df_data = df.to_dict(’list’) case_id, case_name = df_data[’case_id’], df_data[’case_name’] case_body, case_assert = df_data[’case_body’], df_data[’case_assert’] case_body1 = body_encrypt(str(case_body)) txt_data = list(zip(case_id, case_name, eval(case_body1), case_assert)) return txt_data5. 上主菜,pytest的使用

class Test_zhu(object): #類初始化,此處在測試執(zhí)行中,全局只會執(zhí)行一次(讀取配置文件) @classmethod def setup_class(self):self.text_data = config_txt() #方法初始化,此處在測試執(zhí)行中,每條用例都會先執(zhí)行一遍 def setup_method(self):time.sleep(0.4)self.time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) #request接口請求的邏輯 def request_id(self, GATEWAY_URL, http_body):HTTP_BODY = eval(http_body)TIME_STAMP = str(int((time.time() + 5) * 1000))zhuCE = uuid.uuid1().hexmsg = self.text_data[’zhuLY_ID’] + 'n' + TIME_STAMP + 'n' + zhuCE + 'n' + self.text_data[’zhu_KEY’] + 'n' + self.text_data['HTTP_URI'] + 'n' + json.dumps(HTTP_BODY)HTTP_HEADER = { 'zhu_ID': self.text_data[’zhu_ID’], 'zhuLY_ID': self.text_data[’zhuLY_ID’], 'zhuCE': zhuCE, 'zhu_KEY': self.text_data[’zhu_KEY’], 'TIMESTAMP': TIME_STAMP, 'SIGNATURE': hash_hmac(self.text_data[’zhu_SECRET’], msg, hashlib.sha1)}print(’**請求參數(shù):{}.’.format(HTTP_BODY))response_one = requests.post(GATEWAY_URL, json=HTTP_BODY, headers=HTTP_HEADER, verify=True)print(’**響應(yīng)結(jié)果:{}.’.format(response_one.text))return eval(response_one.text) #parametrize為數(shù)據(jù)驅(qū)動,此處獲取了excle用例里的數(shù)據(jù);apitest定個標(biāo)簽,后續(xù)冒煙啥的可以選擇性的跑(暫時無用); #excel_case(case_id='all')說明,all為全部用例執(zhí)行或者指定用例執(zhí)行case_0001 @pytest.mark.parametrize(’case_id,case_name, case_body, case_assert’, excel_case(case_id='all')) @pytest.mark.apitest def test_zhu_case(self, case_id, case_name, case_body, case_assert):print('**n執(zhí)行編號:' + case_id + 'n**用例名稱:' + case_name)case_assert_a = json.loads(case_assert)alertText = self.request_id(self.text_data[’GATEWAY_URL’], case_body)retcode = case_assert_a.get(’code’) if case_assert_a.get(’retcode’) == None else case_assert_a.get(’retcode’)alertText_a = alertText.get(’code’) if alertText.get(’retcode’) == None else alertText.get(’retcode’)#此處為斷言,判斷用例通過還是不通過assert alertText_a == retcode

if __name__ == ’__main__’: pytest.main(['-sv', ’zhu_testA.py’])6. 利用pytest-html庫可以生成html報告

命令:pytest zhu_testA.py --html=report.html --self-contained-html

python使用pytest接口自動化測試的使用

到此這篇關(guān)于python使用pytest接口自動化測試的使用的文章就介紹到這了,更多相關(guān)python 接口自動化測試內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 仓储笼_仓储货架_南京货架_仓储货架厂家_南京货架价格低-南京一品仓储设备制造公司 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 深圳市万色印象美业有限公司 | 固诺家居-全屋定制十大品牌_整体衣柜木门橱柜招商加盟 | 东莞工作服_东莞工作服定制_工衣订做_东莞厂服 | MOOG伺服阀维修,ATOS比例流量阀维修,伺服阀维修-上海纽顿液压设备有限公司 | 新疆十佳旅行社_新疆旅游报价_新疆自驾跟团游-新疆中西部国际旅行社 | 假肢-假肢价格-假肢厂家-河南假肢-郑州市力康假肢矫形器有限公司 | 石牌坊价格石牌坊雕刻制作_石雕牌坊牌楼石栏杆厂家_山东嘉祥石雕有限公司 | 电机保护器-电动机综合保护器-上海硕吉电器有限公司 | 深圳办公室装修,办公楼/写字楼装修设计,一级资质 - ADD写艺 | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | 密集架-手摇-智能-移动-价格_内蒙古档案密集架生产厂家 | 数控专用机床,专用机床,自动线,组合机床,动力头,自动化加工生产线,江苏海鑫机床有限公司 | 北京网站建设首页,做网站选【优站网】,专注北京网站建设,北京网站推广,天津网站建设,天津网站推广,小程序,手机APP的开发。 | 预制舱-电力集装箱预制舱-模块化预制舱生产厂家-腾达电器设备 | 我爱古诗词_古诗词名句赏析学习平台| 震动筛选机|震动分筛机|筛粉机|振筛机|振荡筛-振动筛分设备专业生产厂家高服机械 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 纳米涂料品牌 防雾抗污纳米陶瓷涂料厂家_虹瓷科技 | 膜结构_ETFE膜结构_膜结构厂家_膜结构设计-深圳市烨兴智能空间技术有限公司 | 电子厂招聘_工厂招聘_普工招聘_小时工招聘信息平台-众立方招工网 | 英思科GTD-3000EX(美国英思科气体检测仪MX4MX6)百科-北京嘉华众信科技有限公司 | 上海道勤塑化有限公司 | 广州展览制作|展台制作工厂|展览设计制作|展览展示制作|搭建制作公司 | 刺绳_刀片刺网_刺丝滚笼_不锈钢刺绳生产厂家_安平县浩荣金属丝网制品有限公司-安平县浩荣金属丝网制品有限公司 | 原色会计-合肥注册公司_合肥代理记账公司_营业执照代办 | 智成电子深圳tdk一级代理-提供TDK电容电感贴片蜂鸣器磁芯lambda电源代理经销,TDK代理商有哪些TDK一级代理商排名查询。-深圳tdk一级代理 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 换网器_自动换网器_液压换网器--郑州海科熔体泵有限公司 | 合肥通道闸-安徽车牌识别-人脸识别系统厂家-安徽熵控智能技术有限公司 | 磁力抛光机_磁力研磨机_磁力去毛刺机_精密五金零件抛光设备厂家-冠古科技 | 微水泥_硅藻泥_艺术涂料_艺术漆_艺术漆加盟-青岛泥之韵环保壁材 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 金属管浮子流量计_金属转子流量计厂家-淮安润中仪表科技有限公司 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 智成电子深圳tdk一级代理-提供TDK电容电感贴片蜂鸣器磁芯lambda电源代理经销,TDK代理商有哪些TDK一级代理商排名查询。-深圳tdk一级代理 | 超声波_清洗机_超声波清洗机专业生产厂家-深圳市好顺超声设备有限公司 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 电竞馆加盟,沈阳网吧加盟费用选择嘉棋电竞_售后服务一体化 | 立刷【微电签pos机】-嘉联支付立刷运营中心 | 板框压滤机-隔膜压滤机-厢式压滤机生产厂家-禹州市君工机械设备有限公司 |