pytest接口自动化测试框架 | 项目实战(pytest+allure+数据驱动)

视频来源:B站《冒死上传!pytest接口自动化测试框架(基础理论到项目实战及二次开发)教学视频【软件测试】》

一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:pytest接口自动化测试框架 | 汇总_COCOgsta的博客-CSDN博客


/run.py

# 测试报告 unittest pytest 自带的测试 allure
# 好看 付
# 配置环境
# 1.安装allure-pytest pip install allure-pytest 生成测试数据
# 2.下载commandline 压缩包 解压在某个目录 /Users/guoliang/SynologyDrive/SourceCode/software/allure-2.13.5/bin
# 3.配置环境变量 sudo vim ~/.bash_profile

# 生成测试报告 执行用例
import os

import pytest


# alluredir 生成数据 数据文件夹allure-result
# 生成测试报告
# allure generate 执行测试数据 -o 生成测试报告
if __name__ == '__main__':
    pytest.main(['py_test.py', '--alluredir', './allure-result'])
    os.system('allure generate ./allure-result -o ./reports')

/py_test.py

import time

import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
from config.loadyaml import *

class TestCase:
    # 测试登录 测登录之前要做的事情 打开浏览器 访问
    # http://39.98.138.157/shopxo/index.php?s=/index/user/logininfo.html
    def setup(self):
        self.driver = webdriver.Chrome()
        self.driver.get("http://39.98.138.157/shopxo/index.php?s=/index/user/logininfo.html")

    # 测完了之后 关闭浏览器
    def teardown(self):
        time.sleep(3)
        self.driver.quit()

    # 测试登录 成功 输入框输入用户名 密码框输入密码 登录按钮点击一下


    # 测试用例失败 用户名不正确 密码正确 操作步骤是一样的 只是数据不同
    # 不写死 数据给我 分离 pytest yaml数据 不好的地方 规则比较多
    # - 列表[] : 字典 [{'uname':'guoliang', 'upas':'123456'}]
    # shop的数据
    @pytest.mark.parametrize('udata', loadyaml('./data/login.yaml'))
    def test_02(self, udata):
        print(udata['uname'])
        self.driver.find_element(By.NAME, 'accounts').send_keys(udata['uname'])
        self.driver.find_element(By.NAME, 'pwd').send_keys(udata['upas'])
        self.driver.find_element(By.XPATH, '/html/body/div[4]/div/div[2]/div[2]/form/div[3]/button').click()





# 填充东西 我想要去实现 测试登录 用例 正常用例 异常用例
# 断言
# 预期结果 实际结果
# 优化 1.断言
# 1. 关键字驱动 常用的操作 项目的基本操作 点击 提前封装起来 后面去使用直接使用
# 刷花
# def 刷花():
#     刷花
# 刷花()
# 项目结构
# 2. 项目里面 页面 公司框架 维护 扩展 登录页 下单页 支付页 首页
# 测试数据 分离数据 正常 异常
# 3. 生成测试报告 1.2句代码 html css js代码
# 邮件

# 登录 下单 支付流程 线性代码 加需求 建需求
# 简单:
# 1.测试登录 登录步骤写出来
# 2.数据 用yaml文件分离出来
# 3.不能直接使用 读取yaml文件
# 4.获取数据 传进来 @pytest.mark.parametrize

/config/loadyaml.py

# 专门取yaml文件数据

import yaml

# 封装 方便调用

# 打开我的文件数据 r可读
def loadyaml(filename):
    stream = open(filename, 'r')
    # 读取文件数据
    data = yaml.load(stream, yaml.FullLoader)
    return data

/data/login.yaml

-
  uname: guoliang
  upas: 123456
-
  uname: guoliang2
  upas: 123456
-
  uname: guoliang3
  upas: 123456
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值