pytest+allure接口自动化
时间:2019-08-23
本文章向大家介绍pytest+allure接口自动化,主要包括pytest+allure接口自动化使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
python类库依赖:
pip3 install pytest
pip3 install allure-pytest
pip3 install rerequests
pip3 install pytest-repeat
环境依赖
linux:
jdk8环境
安装allure文件
npm install -g allure-commandline --save-dev
增加软连接
验证
allure --version
import requests, os, sys, pytest,allure @pytest.fixture def test_garbfilter_preposition(self): ''' 广告词检测前置条件 :return: ''' yield self.test_garbfilter_preposition # 清除测试数据-解除禁言 with requests.post(delforbidinfo_url(), headers=chat_header(), json={ "roleId": 'Advertising_data' })as delfor: assert_correct_method(delfor) @pytest.mark.skipif(Advertising_conditions(), reason="请求参数:" + str(Advertising_data()[1]) + "\r\n发送广告禁言测试条件不满足跳过此用例,条件请求返回值:" + str( Advertising_data()[0]) + "") @allure.story('禁言后发言') def test_garbfilter_true(self, test_garbfilter_preposition): ''' :return: {'code': 486, 'info': 'forbidden speak'} ''' data={ "from": 'Advertising_data', "to": "p:dc_ceshi", "msgType": 1, "body": "发送消息", "ext": { "key": "value" }, "garbFilter": True, "wordFilter": True, "time": request_time() } with allure.step("请求参数:%s 请求地址%s" % (data, sendmsg_url())): with requests.post(sendmsg_url(), headers=chat_header(), json=data) as send_s: with allure.step("返回参数:%s" % send_s.json()): assert_forbid_method(send_s)
运行指令 run.py
if __name__ == '__main__': pytest.main(['-v', '-s',curPath+'/test_cases', '--alluredir', curPath+'/report/report', '--clean-alluredir']) while 1: try: os.system('allure generate '+curPath+'/report/report -o '+curPath+'/report/allure-reports/ --clean') break except Exception: print('等待生成静态文件...') finally: time.sleep(1)
原文地址:https://www.cnblogs.com/hellolonewoif/p/11398267.html
- 重学javascript 红皮高程(6)
- WriteUp分享 | LCTF的一道preg_match绕过+出题人的锅
- 利用crypto++库实现AES加密算法
- Android之倒计时CountdownTimer用法
- WriteUp分享 | LCTF的一道padding oracle攻击+sprintf格式化字符串导致的SQL注入
- 10.27 target介绍
- Android 之游戏开发流程
- shell脚本后台运行
- Android的.so文件你需要知道那些知识
- xshel配色方案
- cocos2dx-v3.5 2048 (一): 项目架构
- cocos2dx-v3.5 2048 (二): GameTool的设计与实现
- cocos2dx-v3.5 2048(三):菜单实现
- 2017 LCTF WriteUp 4篇
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 在Egret项目中使用protobuf
- JavaScript原型与继承
- 当TKE遇上Coding, 业务如何实现快速迭
- cocos creator 1.x透明渐变效果实现
- Cocos Creator 2.x透明渐变效果实现
- Themeleaf通过ajax局部更新
- ubuntu下利用expect实现screen多窗口开机运行
- hetzner服务器购买和安装debian系统
- 安全通告 | Apache SkyWalking SQL注入漏洞安全风险公告(CVE-2020-13921)
- Cmd Markdown 迁移备份的流程
- PyTorch3:计算图torch.autograph
- spark shell 配置 Kryo 序列化
- Mac里捣腾Kerberos(一)
- Spark on K8S 访问 Kerberized HDFS
- Apache Beam的Docker Demo