Pytest+Allure进行自动化测试

pytest 安装
pip install pytest
Allure插件安装
以前都写的是pytest-allure-adaptor
不过进官方主页说已经停更了
现在安装插件
pip install allure-pytest

生成html还需要安装
Allure安装
下载https://dl.bintray.com/qameta/generic/io/qameta/allure/
解压缩后添加PATH
依赖JAVA1.8 自行下载添加PATH

简单用法介绍

pytest .\test_1.py --alluredir ./report/
allure generate ./report/ -o ./html/ --clean
allure serve ./report/
详细说明
https://docs.qameta.io/allure/#_pytest
https://docs.pytest.org/en/latest/

#-*- coding:utf-8 -*-

__author__ = "Mason"
import allure
import pytest
import requests


# 基于pytest requests测试 接口
#('Feature1')  # feature定义功能
@allure.feature('feature1')
class TestRequestDemo:
    # 初始化
    url = "http://jsonplaceholder.typicode.com"
    session = requests.session()    

    # 测试获取所有用户信息接口  
    @allure.story('测试获取所有用户信息接口')
    def test_get_posts(self):
        r = self.session.get(self.url + "/posts")        
        # 断言状态码
        assert r.status_code == 200
        
        # 断言响应头信息
        assert r.headers["Content-Type"] == "application/json; charset=utf-8"

        # 断言用户总数
        assert len(r.json()) == 100
    
    # 测试获取指定用户信息接口
    @allure.story('获取指定用户信息接口')  # story定义用户场景
    def test_get_posts_by_id(self):
        r = self.session.get(self.url + "/posts/1")        
        
        # 断言状态码
        assert r.status_code == 200
        
        # 断言响应头信息
        assert r.headers["Content-Type"] == "application/json; charset=utf-8"

        # 验证用户id
        data = r.json()        
        assert data["userId"] == 1
        

    # 测试删除指定用户信息接口
    @allure.story('删除指定用户信息接口')  # story定义用户场景
    def test_delete_posts_by_id(self):
        r = self.session.delete(self.url + "/posts/1")        
    
        # 断言状态码
        assert r.status_code == 200
        
        # 断言响应头信息
        assert r.headers["Content-Type"] == "application/json; charset=utf-8"


        

pytest .\test_2.py --alluredir ./report/ --allure-features feature1 --allure-stories 测试获取所有用户信息接口
allure generate ./report/ -o ./html/ --clean
生成结果

你可能感兴趣的:(Python应用)