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)

具体用法请看文档:https://docs.qameta.io/allure/#_python
安装requests:pip install requests
文档说安装allure使用如图命令进行安装,经过尝试无法达到想要的效果,所以我觉得这几种方式不是最简单的

下面我来介绍一下我的操作方法:
第一:下载allure服务包,下载链接:https://pan.baidu.com/s/1Z8gSV3PnmPAOkNjVfdANIQ 提取码:j62d
第二:下载服务包后进行解压

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




在项目中,我们只需要导入两个模块就可以用了
import allure import requests 使用方法:一百度接口为例


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

整合Jenkins待续。。。