gpt4 book ai didi

PlayWright(二十二)-allure插件(一)

转载 作者:我是一只小鸟 更新时间:2023-07-26 22:31:53 30 4
gpt4 key购买 nike

在上文中,我们介绍并使用了pytest-html插件,总之并不复杂,但是今天我们要讲一个比pytest-html插件强很多的插件allure报告,我们要掌握他并且灵活使用,之后的框架就不需要考虑其他的了
 

1.使用allure需要什么?

因为allure的环境基于Java环境,所以得先下载JDK
 

下载JDK,配置环境变量

因为这方面教程太多了,所以就不细说了,详情可看推荐这篇: Java JDK下载与安装教程
配置JDK环境变量: Java JDK环境变量配置

下载allure,配置环境变量

官网下载地址: https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/
 
 
  1. 首先选择一个版本
  1. 然后选择下载Zip文件
  1. 下载解压到你想放的文件夹里
  1. 配置allure环境变量
 

 
至此,我们的安装配置工作已经完成了,接下来检查一下我们是否安装并配置成功了
命令行打开,输入allure,检查配置
 
我们全部已经准备好了
那现在我们可以直接开整了
 
 

2.仿真登录功能自动化

以登录功能写测试用例:
既然是登录功能,我们可以结合之前学过的参数化篇:https://www.cnblogs.com/nuomituan/p/17554132.html,先来整理我们的数据
 
 

data数据篇

项目文件夹下,新建一个data目录,然后新建一个login.json文件
                            
                              {
  
                            
                            
                              "
                            
                            
                              case_01
                            
                            
                              "
                            
                            
                              : {
    
                            
                            
                              "
                            
                            
                              case
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              用户名正确, 密码正确
                            
                            
                              "
                            
                            
                              ,
    
                            
                            
                              "
                            
                            
                              user
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              chen
                            
                            
                              "
                            
                            
                              ,
    
                            
                            
                              "
                            
                            
                              pwd
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              123456
                            
                            
                              "
                            
                            
                              ,
    
                            
                            
                              "
                            
                            
                              expected
                            
                            
                              "
                            
                            
                              : {
      
                            
                            
                              "
                            
                            
                              code
                            
                            
                              "
                            
                            : 200
                            
                              ,
      
                            
                            
                              "
                            
                            
                              msg
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              登录成功
                            
                            
                              "
                            
                            
                              ,
      
                            
                            
                              "
                            
                            
                              data
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              None
                            
                            
                              "
                            
                            
                              
    }
  },
  
                            
                            
                              "
                            
                            
                              case_02
                            
                            
                              "
                            
                            
                              : {
    
                            
                            
                              "
                            
                            
                              case
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              用户名正确, 密码为空
                            
                            
                              "
                            
                            
                              ,
    
                            
                            
                              "
                            
                            
                              user
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              chen
                            
                            
                              "
                            
                            
                              ,
    
                            
                            
                              "
                            
                            
                              pwd
                            
                            
                              "
                            
                            : 
                            
                              ""
                            
                            
                              ,
    
                            
                            
                              "
                            
                            
                              expected
                            
                            
                              "
                            
                            
                              : {
      
                            
                            
                              "
                            
                            
                              code
                            
                            
                              "
                            
                            : 404
                            
                              ,
      
                            
                            
                              "
                            
                            
                              msg
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              用户名或密码错误
                            
                            
                              "
                            
                            
                              ,
      
                            
                            
                              "
                            
                            
                              data
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              None
                            
                            
                              "
                            
                            
                              
    }
  },
  
                            
                            
                              "
                            
                            
                              case_03
                            
                            
                              "
                            
                            
                              : {
    
                            
                            
                              "
                            
                            
                              case
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              用户名为空, 密码正确
                            
                            
                              "
                            
                            
                              ,
    
                            
                            
                              "
                            
                            
                              user
                            
                            
                              "
                            
                            : 
                            
                              ""
                            
                            
                              ,
    
                            
                            
                              "
                            
                            
                              pwd
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              123456
                            
                            
                              "
                            
                            
                              ,
    
                            
                            
                              "
                            
                            
                              expected
                            
                            
                              "
                            
                            
                              : {
      
                            
                            
                              "
                            
                            
                              code
                            
                            
                              "
                            
                            : 404
                            
                              ,
      
                            
                            
                              "
                            
                            
                              msg
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              用户名或密码错误
                            
                            
                              "
                            
                            
                              ,
      
                            
                            
                              "
                            
                            
                              data
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              None
                            
                            
                              "
                            
                            
                              
    }
  },
  
                            
                            
                              "
                            
                            
                              case_04
                            
                            
                              "
                            
                            
                              : {
    
                            
                            
                              "
                            
                            
                              case
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              用户名错误, 密码错误
                            
                            
                              "
                            
                            
                              ,
    
                            
                            
                              "
                            
                            
                              user
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              chen
                            
                            
                              "
                            
                            
                              ,
    
                            
                            
                              "
                            
                            
                              pwd
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              123
                            
                            
                              "
                            
                            
                              ,
    
                            
                            
                              "
                            
                            
                              expected
                            
                            
                              "
                            
                            
                              : {
      
                            
                            
                              "
                            
                            
                              code
                            
                            
                              "
                            
                            : 404
                            
                              ,
      
                            
                            
                              "
                            
                            
                              msg
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              用户名或密码错误
                            
                            
                              "
                            
                            
                              ,
      
                            
                            
                              "
                            
                            
                              data
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              None
                            
                            
                              "
                            
                            
                              
    }
  }
}
                            
                          

  。

tools工具篇

新建一个tools目录,创建处理JSON文件的get_data.py,JSON文件有一个地址,所以我们还要解决路径问题,一劳永逸,所以还需要 根目录 下创建一个confi.py处理基础路径
 
config.py文件代码:
                            
                              import
                            
                            
                               os

base_dir 
                            
                            = os.path.dirname(
                            
                              __file__
                            
                            )
                          

  。

这里我们可以得到项目的根路径D:/Python/Pytest_Demo
 
get_data.py文件代码:
                            
                              import
                            
                            
                               json


                            
                            
                              from
                            
                             config 
                            
                              import
                            
                            
                               base_dir

json_file 
                            
                            = base_dir + 
                            
                              "
                            
                            
                              /data/login.json
                            
                            
                              "
                            
                            
                              print
                            
                            
                              (json_file)


                            
                            
                              def
                            
                            
                               get_data():
    
                            
                            
                              #
                            
                            
                               指定文件路径
                            
                            
                              
    test_data 
                            
                            =
                            
                               []
    
                            
                            
                              #
                            
                            
                               打开文件加载
                            
                            
    with open(json_file, encoding=
                            
                              "
                            
                            
                              utf-8
                            
                            
                              "
                            
                            
                              ) as f:
        case 
                            
                            =
                            
                               json.load(f)

    
                            
                            
                              for
                            
                             case_data 
                            
                              in
                            
                            
                               case.values():
        test_data.append(tuple(case_data.values()))
    
                            
                            
                              print
                            
                            
                              (test_data)
    
                            
                            
                              return
                            
                             test_data
                          

  。

 
我们调用函数测试下结果:
没有问题
 

testcase用例篇

  我们要测试登录功能,得先写个模块函数,模拟登录功能成功和失败的情况
                            
                              def
                            
                            
                               login(username, password):
    
                            
                            
                              """
                            
                            
                              
    模拟登录功能
    :param username:
    :param password:
    :return:
    
                            
                            
                              """
                            
                            
                              
    user 
                            
                            = 
                            
                              '
                            
                            
                              chen
                            
                            
                              '
                            
                            
                              
    pwd 
                            
                            = 
                            
                              '
                            
                            
                              123456
                            
                            
                              '
                            
                            
                              if
                            
                             user == username 
                            
                              and
                            
                             pwd ==
                            
                               password:
        
                            
                            
                              return
                            
                            
                               {
            
                            
                            
                              "
                            
                            
                              code
                            
                            
                              "
                            
                            : 200
                            
                              ,
            
                            
                            
                              "
                            
                            
                              msg
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              登录成功
                            
                            
                              "
                            
                            
                              ,
            
                            
                            
                              "
                            
                            
                              data
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              None
                            
                            
                              "
                            
                            
                              
        }
    
                            
                            
                              else
                            
                            
                              :
        
                            
                            
                              return
                            
                            
                               {
            
                            
                            
                              "
                            
                            
                              code
                            
                            
                              "
                            
                            : 404
                            
                              ,
            
                            
                            
                              "
                            
                            
                              msg
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              用户名或密码错误
                            
                            
                              "
                            
                            
                              ,
            
                            
                            
                              "
                            
                            
                              data
                            
                            
                              "
                            
                            : 
                            
                              "
                            
                            
                              None
                            
                            
                              "
                            
                            
                              
        }
                            
                          

  。

 
然后我们根据我们的测试数据,登录功能,编写测试用例吧
                            
                              class
                            
                            
                               TestLogin(object):

    @pytest.mark.parametrize(
                            
                            
                              "
                            
                            
                              case,user,pwd,expected
                            
                            
                              "
                            
                            
                              , get_data())
    
                            
                            
                              def
                            
                            
                               test_login(self, case, user, pwd, expected):
        
                            
                            
                              """
                            
                            
                              测试用例
                            
                            
                              """
                            
                            
                              
        response 
                            
                            =
                            
                               login(user, pwd)
        
                            
                            
                              assert
                            
                             response == expected
                          

  。

我们使用了parametrize装饰器,把测试数据取出来,然后用取出来的user,pwd登录,然后用返回的结果response做断言,执行看下结果:
 
准备工作已经完成,终于到我们今天的主角了
 

3.使用allure报告

安装插件

 
因为要集合pytest,所以在我们生成报告前,还需要装下allure-pytest插件
pip install -i https://pypi.douban.com/simple allure-pytest
 
那我们怎么使用呢?
 
 

生成allure测试结果

我们执行命令的时候,会输入命令pytest ,现在只需要在后边加上 --alluredir = path 生成的测试报告数据就到指定文件夹了
配置文件:
 
输入命令pytest执行看下结果:
 
已经生成了reports目录,并且有一些json文件,其实这就是我们执行的测试结果内容,如果想要以html形式看,那就需要用到allure命令了
 
 

生成allure报告

这块我们有两种方式
第一种:直接打开测试报告
allure serve path路径
我们在命令行输入allure serve ./reports,看下结果:
我们的报告已经生成
 
第二种方式:将测试结果生成到一个html报告到指定文件下
allure generate ./report -o ./report --clean
 
命令行输入:allure generate ./reports -o ./reports/report --clean
--clean 表示我们会清除report的文件夹,然后再生成报告
 
看下执行结果:
 
report就是我们生成的报告,打开下边的index.html看下吧
 
 
allure插件我们也掌握了,下篇我们深入allure报告插件在讲解
 

最后此篇关于PlayWright(二十二)-allure插件(一)的文章就讲到这里了,如果你想了解更多关于PlayWright(二十二)-allure插件(一)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com