pytest+requests+allure的简单使用

api配置文件
# -*- coding:utf-8 -*-
baidu_Url = 'https://www.baidu.com/'

ipm实现函数

# coding=utf-8
# import pytest
import allure
import requests
from pytest001.src.test_api.test_baidu_url_api_imp import *

@allure.feature("实现类")
class TestBaiduApi:
    @allure.story("请求发起")
    @allure.testcase("http://baidu.com", 'baogap')
    def test_baidu_url_api_imp(baidu_Url):
        req = requests.get(baidu_Url)
        if req.encoding == 'ISO-8859-1':
            encodings = requests.utils.get_encodings_from_content(req.text)
        if encodings:
            encoding = encodings[0]
        else:
            encoding = req.apparent_encoding
        global encode_content
        encode_content = req.content.decode(encoding, 'replace')  # 如果设置为replace,则会用?取代非法字符;
        print(encode_content)
        print(req.status_code)
        assert req.status_code == 200
        with open('test.html', 'w', encoding='utf-8') as f:
            f.write(encode_content)

        return encode_content


# if __name__ == '__main__':
#    TestBaiduApi.test_baidu_url_api_imp(baidu_Url)

函数封装
# -*- coding:utf-8 -*-
from pytest001.api_url.api.baidu_api import *
from pytest001.com.baidu_url_imp import *
import allure
@allure.feature("百度")
class TestBaiduUrl:
    @allure.story("测试百度接口")
    def test_baidu_url_api_imp(self):
       TestBaiduApi.test_baidu_url_api_imp(baidu_Url)

config.py文件
import pytest
import allure
from py._xmlgen import html


def pytest_configure(config):
    marker_list=["smoke","demo","test"]
    for markers in marker_list:
        config.addinivalue_line("markers",markers)
        print(markers)


def pytest_configure(config):
    config._metadata["项目名称"]="测试百度链接接口测试"

# pytest_configure("smoke")

@allure.step("打开浏览器")
def fixture_step():
    pass


@pytest.fixture
def init_url():
    fixture_step()
    yield True

定义marker文件ini
[pytest]
markers =
    smoke:marks tests as smoke.
    demo:marks tests asa demo.
    test:marks tests asa test.

run文件

# -*- coding:utf-8 -*-
import allure
import pytest
import allure_pytest
import allure_commons
import requests
import time
import os
if __name__ == '__main__':
os.system(
'pytest -v -q --alluredir {} --clean-alluredir --html={} --clean-alluredir'.format("E:/workspace/pytest001/allure/allure-results",
"E:/workspace/pytest001/allure-report/index.html"))
os.system('allure generate ./allure/allure-results -o ./allure-report/ --clean')
# 拷贝趋势图文件 history 数据到存放用例数据的目录下,不然无法生成趋势图
os.system(
'xcopy "E:/workspace/pytest001/allure-report/history" "E:/workspace/pytest001/allure/allure-results/history" /E /Y /I /F')
os.system(
'xcopy "E:/workspace/pytest001/config/configuration" "E:/workspace/pytest001/allure/allure-results/" /E /Y /I /F')
# os.system('allure generate ./allure/allure-results -o ./allure-report/ --clean')

完成以上操作需要安装pytest、allure、requests库,可以用pip install 需要安装的库进行安装,allure比较麻烦一点,需要安装服务配置环境变量。

安装pytest:pip install pytest 或 pip install allure - pytest (前者是单纯的pytest,后者是allure - pytest)

安装完,使用命令,pip list 查看所有安装的插件包,可查看

具体用法请看文档:https://docs.qameta.io/allure/#_python

安装requests:pip install requests

文档说安装allure使用如图命令进行安装,经过尝试无法达到想要的效果,所以我觉得这几种方式不是最简单的

下面我来介绍一下我的操作方法:

第一:下载allure服务包,下载链接:https://pan.baidu.com/s/1Z8gSV3PnmPAOkNjVfdANIQ 提取码:j62d

第二:下载服务包后进行解压

放在想放在的目录下

第三:配置环境变量,这个和jdk配置方法一直,这里就不多说了。Mac电脑操作类似。

环境变量配置完我们就可以使用命令进行验证allure环境是否安装成功
出现这样的情况就是安装成功的,我们也可以查看版本号

在项目中,我们只需要导入两个模块就可以用了

import allure
import requests
使用方法:一百度接口为例
这就是开头的一部分代码,可以使用上面的代码进行简单的学习操作

最终的报告结果:allure-report测试报告生成文件

整合Jenkins待续。。。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *