pytest+allure实战

pytest+allure实战pytest+allure实战pytest+allure实战基本架构Login.pytest.pyrun_all_case.py测试报告pytest+allure实战写之前,说一下自己的感受,大家之前调试出来的框架什么的一定要做好记录,或者归纳整理好,pytest+allure很久之前就用过了,但是当时出报告以后就扔一边了,当我想整理写一篇关于这个的时候完全找不到在哪,但是脑子里还记的这个框架之前100%用过,就是不知道放哪里了,重新调试也不想调,就一直翻电脑,越翻越燥,大半天也没找见,其实就在我眼皮底

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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()

测试报告

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164424.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql 读写分离 事务_mysql 读写分离(基础篇)

    mysql 读写分离 事务_mysql 读写分离(基础篇)基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。JanKneschke在《MySQLProxylearnsR/WSplitting》中详细的介绍了这种技巧以及连接池问题:为了实现读写分离我们需要连接池。我们仅在已打开了到一个后端的一条经过认证的连接的情况下,才切换到该后端。MySQL协议首先进行握手。当…

    2022年6月6日
  • Linux的vi命令用法大全_linux top命令详解

    Linux的vi命令用法大全_linux top命令详解vi共分为三种模式:分别是一般模式,编辑模式与命令行模式一般模式:以vi打开一个文件就直接了一般模式(这是默认的模式)编辑模式:在指令模式下输入的按键“i,I,o,O,a,A,r,R”,vi即认为是在当前位置插入字符。而在输入模式下,vi则把输入的按键当作插入的字符来处理。指令模式切换到输入模式只需键入相应的输入命令即可(如a,A),而要从输入模式切换到指令模式,则需在输入模式下键入…

    2022年9月22日
  • navicat永久激活码最新[最新免费获取]

    (navicat永久激活码最新)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlS32PGH0SQB-eyJsaWNlbnNlSW…

    2022年3月26日
  • Nginx 和 Apache 区别最全详解?「建议收藏」

    Nginx 和 Apache 区别最全详解?「建议收藏」Nginx轻量级,采用C进行编写,同样的web服务,会占用更少的内存及资源抗并发,nginx以epollandkqueue作为开发模型,处理请求是异步非阻塞的,负载能力比apache高很多,而apache则是阻塞型的。在高并发下nginx能保持低资源低消耗高性能,而apache在PHP处理慢或者前端压力很大的情况下,很容易出现进程数飙升,从而拒绝服务的现象。nginx处理静态文件好,静态处理性能比apache高三倍以上nginx的设计高度模块化,编写模

    2022年5月2日
  • 搭建python开发平台「建议收藏」

    搭建python开发平台「建议收藏」python开发

    2022年7月3日
  • Linux C编程语言学习材料

    Linux C编程语言学习材料

    2022年1月2日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号