Pytest基础自学系列

Posted COCOgsta

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pytest基础自学系列相关的知识,希望对你有一定的参考价值。

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

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


项目实战(pytest+allure+数据驱动)

/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':'xxx', '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: xxx
  upas: 123456
-
  uname: xxx2
  upas: 123456
-
  uname: xxx3
  upas: 123456

以上是关于Pytest基础自学系列的主要内容,如果未能解决你的问题,请参考以下文章

Pytest基础自学系列

Pytest基础自学系列

Pytest基础自学系列

想要自学JAVA,应该如何入门?

5GC基础自学系列 | 汇总

5G无线技术基础自学系列 | 汇总