pytest+allure实战

pytest+allure实战

写之前,说一下自己的感受,大家之前调试出来的框架什么的一定要做好记录,或者归纳整理好,pytest+allure很久之前就用过了,但是当时出报告以后就扔一边了,当我想整理写一篇关于这个的时候完全找不到在哪,但是脑子里还记的这个框架之前100%用过,就是不知道放哪里了,重新调试也不想调,就一直翻电脑,越翻越燥,大半天也没找见,其实就在我眼皮底下,只不过当时给文件夹起名也过于随意,啥也没干光找这个框架找的我好累
在这里插入图片描述

基本架构

在这里插入图片描述

Login.py

import requests
import json

def get_login():
      url = "http:"


      data = {
           "username" :"",
           "password" :"123456789"
      }

      headers = {
            "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"
      }


      res = requests.post(url=url,data=data,headers=headers)
      return (res.json()["data"]["token"])

token  = str(get_login())
#print(token,"确认token成功返回")
print(token)


#从响应结果中获取token值


test.py

import sys
import os
from common.Logs import Log
from common.Yaml_Data import HandleYaml
from common.Login import get_login
import allure
from common import Assert
from common import Consts
import requests

handleyaml = HandleYaml()
from common.Retrun_Response import dict_style
yamldict = handleyaml.get_data()

file = os.path.basename(sys.argv[0])
log = Log(file)
logger = log.Logger

@allure.description("系统登录接口测试:正向测试:用户名密码均正确")
@allure.link("http://",name="登录页面")
def test_01_正向登录():
    def_name = sys._getframe().f_code.co_name
    logger.info("开始执行脚本%s:\n",def_name)
    url = 'http://'
    header = {"Accept": "application/json, text/plain, */*",
              "Accept - Encoding": "gzip, deflate",
              "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
              "Cookie":get_login()

    }
    data = {
        "username":"",
        "password": 123456789,
    }
    r = requests.post(url=url,headers=header,data=data)
    print(r.status_code)
    print(r.text)

    Consts.RESULT_LIST.append('pass')

run_all_case.py

#!/usr/bin/python
# -*- coding: UTF-8 _*_

import time
import os
import sys
from common.Logs import Log
import pytest
from common import Shell
import allure
from common.emails import mail


if __name__ == "__main__":
    file = os.path.basename(sys.argv[0])
    log = Log(file)
    logger = log.Logger
    # 运行单个文件 pytest.main(['../test_case/test_login.py']) 运行多个文件 pytest.main(['../test_case/test_login_getVar.py',
    # '../test_case/test_login.py']) 运行整个目录 pytest.main(['../test_case', '--html=../report/report.html'])
    # logger.info("开始执行脚本") >pytest E:\project\Xiaoniu_Api_Rili\Run\run_all_case.py
    # --alluredir=E:\\project\\Xiaoniu_Api_Rili\\allure-results\\ allure generate report -o report\\allure-reports\\
    try:
        print("开始执行脚本")
        logger.info("==================================" + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) + "===================================")
        pytest.main(['C:\\Users\\Kst\\PycharmProjects\\ALLURE\\test_case', "--alluredir", "./report/reportallure/"])
        # pytest.main(['E:\\project\\Xiaoniu_Api_Rili\\test_case', '--alluredir',
        # 'E:\\project\\Xiaoniu_Api_Rili\\report\\reportallure'])
        # logger.info("脚本执行完成")
        print("脚本执行完成")
    except Exception as e:
        logger.error("脚本批量执行失败!", e)
        print("脚本批量执行失败!", e)

    try:
        shell = Shell.Shell()
        cmd = 'allure generate %s -o %s --clean' % ('./report/reportallure/', './report//reporthtml/')
        # logger.info("开始执行报告生成")
        print("开始执行报告生成")
        shell.invoke(cmd)
        # logger.info("报告生成完毕")
        print("报告生成完毕")
    except Exception as e:
        print("报告生成失败,请重新执行", e)
        # logger.error("报告生成失败,请重新执行", e)
        # log.error('执行用例失败,请检查环境配置')
        raise

    time.sleep(5)
    mail()

测试报告

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汪敏wangmin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值