栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Pytest+Allure安装及使用【持续更新】

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Pytest+Allure安装及使用【持续更新】

------------------------------Day 1-----------------------------------------------------

1.下载本地安装包: PyPI · The Python Package Index

pytest-7.1.2.tar.gz

allure-pytest-2.9.45.tar.gz

解压下载好的tar.gz文件进行安装:

 对应目录文件夹执行命令即可:python setup.py install

2.下载配置文件:Releases · allure-framework/allure2 · GitHub

allure-2.13.8.zip

解到python目录,进行配置

配置后CMD,看看配置是否成功

3.IDE查看一下是否安装成功

 4.执行一下pytest用例: Pytest_Demo.py

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import pytest
import allure

@allure.feature("test")
class Test_SWapi():
    '''运行Py-test执行用例:pytest -vs Pytest_Demo.py '''
    def setup(self):
        self.url_member = 'http://member-service.xxx.cn'
        self.App_token = token()
        self.php_token = token_E()

        url_prod = 'http://marketing-service.xxx.com/login/user?email=xxx@xxx.cn&password=gao123456'
        Res_prod = requests.get(url_prod)
        url_tokenid_E = 'xxx.securityservice.tokenid=' + Res_prod.json()["data"]["tokenID"]
        self.header_token_prod = {'Content-Type': 'application/json',
                                  'Cookie': url_tokenid_E,
                                  'User-Agent': 'Dalvik/2.1.0'}

    def teardown(self):
        pass
    @allure.story("001")
    def test_member_login(self):
        url = self.url_member + '/member/member/get?memberCode=5102252'
        Res = requests.get(url,headers=self.App_token)
        assert Res.status_code == 200

    def test_member_loginA(self):
        url = self.url_member + '/member/login'
        data = {
          "deviceId": "123123123",
          "identity": "13763312225",
          "identityType": 0,
          "password": "111111",
          "platformSource": "Mall",
          "remember": 'true',
          "terminalType": "PC"
        }
        Res = requests.post(url,data=json.dumps(data),headers = self.php_token )
        assert Res.status_code == 200

    def teSst_UartisanUser(self):
        '''更新名匠商家后台密码'''
        self.url_security = 'http://security-service.xxx.com'
        phone =''
        security_token = self.header_token_prod
        url_getList = self.url_security + '/security/user/getList'
        data_getList =  {
          "pager": {
            "now": 0,
            "size": 1,
            "total": 1
          },
          "search": [
            {
              "name": "phone",
              "value": phone
            }
          ],
          "sort": [
            {
              "asc": 'true',
              "name": "string"
            }
          ]
        }
        Res_A = requests.post(url=url_getList,
                              data=json.dumps(data_getList),
                              headers = security_token)
        userCode = Res_A.json()['data']['list'][0]['userCode']
        userName = Res_A.json()['data']['list'][0]['userName']
        departmentCode = Res_A.json()['data']['list'][0]['departmentCode']
        employeeCode = Res_A.json()['data']['list'][0]['employeeCode']
        email = Res_A.json()['data']['list'][0]['email']
        password = '123456'
        url_update = self.url_security + '/security/user/update'
        data_update = {
          "departmentCode": departmentCode,
          "email": email,
          "employeeCode": employeeCode,
          "password": password,
          "phone": phone,
          "userCode": userCode,
          "userName": userName
        }
        Res_B = requests.post(url=url_update,
                              data=json.dumps(data_update),
                              headers =security_token )
        print(Res_B.json())
    def test_link_center(self):
        result = requests.get(self.url_member + '/member/center/get',
                              headers= self.App_token)
        assert result.status_code == 200

    def test_link_pointFlowHead(self):
        result = requests.get(self.url_member + '/member/center/pointFlowHead',
                              headers= self.App_token)
        assert result.status_code == 200

    @pytest.mark.parametrize('phone',
                             ['13763312225',
                              '13247026377',
                              '13577798350'])
    def test_getByPhone(self,phone):
        # 用例参数化
        result = requests.get(self.url_member + '/member/member/getByPhone?phone='+phone,
                              headers=self.php_token)
        assert result.status_code == 200

    @pytest.fixture()
    def getLogin_fixture(self):
        RBG = {
            "pager": {
                "now": 0,
                "size": 1,
                "total": 1
            },
            "search": [
                {
                    "name": "phone",
                    "value": "13763312225"
                }
            ],
            "sort": [
                {
                    "asc": '',
                    "name": "string"
                }
            ]
        }
        return RBG

    @pytest.mark.xfail(reason = 'xfail api')
    def test_getLogin_xfail(self,getLogin_fixture):
        result = requests.post(self.url_member + '/member/member/getLogin',
                               data=json.dumps(getLogin_fixture), headers=self.php_token)
        assert result.status_code == 200

    @pytest.mark.skip(reason = 'skip api')
    def test_getLogin_skip(self,getLogin_fixture):
        result = requests.post(self.url_member + '/member/member/getLogin',
                               data=json.dumps(getLogin_fixture), headers=self.php_token)
        assert result.status_code == 200

    @pytest.mark.unfinished
    def test_getLogin_unfinished(self,getLogin_fixture):
        '''标记,unfinished不执行用例'''
        result = requests.post(self.url_member + '/member/member/getLogin',
                               data=json.dumps(getLogin_fixture), headers=self.php_token)
        assert result.status_code == 200
    def test_getLogin_raises(self,getLogin_fixture):
        with pytest.raises(TypeError) as f:
            result = requests.post(self.url_member + '/member/member/getLogin',
                                   data=json.dumps(getLogin_fixture), headers=self.php_token)
        exec_msg = f.value.args[0]
        assert exec_msg == '123'

    def test_getLogin_fixture(self,getLogin_fixture):
        print(getLogin_fixture)
        result = requests.post(self.url_member + '/member/member/getLogin',
                               data=json.dumps(getLogin_fixture), headers=self.php_token)
        print(result.json())

pytest -s Pytest_Demo.py --alluredir report

生成Html报告,并清楚之前的数据

allure generate --clean report

保存测试报告

allure serve report

默认访问地址:http://localhost:60684/index.html#

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/968560.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号