微信小程序自动化测试pytest版工具使用方法

-mini

https://github.com/zx490336534/pytest-mini

微信小程序自动化测试pytest插件/工具

基于MiniTest进行pytest改造

使用方法

准备测试小程序

根据miniprogram-demo项目介绍运行一次项目

成功运行后关闭

安装&更新

复制代码
pip install pytest-mini --upgrade

引入插件

新建conftest.py文件

python 复制代码
from pytest_mini import plugins

pytest_plugins = plugins(
    "待测试的小程序项目路径",
    "微信开发者工具路径"
)

例如demo/cases/conftest.py

python 复制代码
from pytest_mini import plugins

pytest_plugins = plugins(
    "/Users/zhongxin/github/miniprogram-demo",  # 待测试的小程序项目路径
    "/Applications/wechatwebdevtools.app/Contents/MacOS/cli"  # 微信开发者工具路径
)

编写页面对象

在demo/pages/components_page.py编写元素定位

python 复制代码
from pytest_mini import Mini, Locator


class ComponentsPage(Mini):
    view_container = Locator('view', inner_text='视图容器', desc='组件页-视图容器')

在conftest.py中添加

python 复制代码
import pytest
from pages.components_page import ComponentsPage

@pytest.fixture(scope="session")
def components_page(mini):
    yield ComponentsPage(driver=mini.driver)

编写测试代码

demo/cases/test_home.py

python 复制代码
import allure

from pytest_mini import compose


@compose(feature="小程序官方组件展示", story="组件", title='容器视图操作')
def test_view_container(components_page):
    with allure.step("点击容器视图"):
        components_page.click(components_page.view_container)
        assert False, "故意失败,查看报告截图"

编写执行&报告展示脚本

demo/cases/allure_debug.py

python 复制代码
import os
import pytest
from pytest_mini.constant import Constant

test_cases = ["test_home.py"]  # 执行的脚本

main_list = [
    '-s', '-v',
    *test_cases,
    '--durations=0', '--clean-alluredir',
    '--alluredir', f'{Constant().REPORT_PATH}/allure_results'
]
pytest.main(main_list)
if not os.getenv("BUILD_URL"):
    os.system(f"{Constant.ALLURE_TOOL} serve {Constant().REPORT_PATH}/allure_results")  # 本地执行

执行测试

运行allure_debug.py文件

查看报告

报告截图

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
越学不动啦1 小时前
八、自动化函数
运维·软件测试·自动化·dubbo·测试
小徐Chao努力4 小时前
【解析】ReentrantLock锁、Syschronized锁面试点解析
java·面试·职场和发展·synchronized·
SuperW4 小时前
蓝桥杯嵌入式十五届模拟三(串口、双ADC)
单片机·职场和发展·蓝桥杯
一叶祇秋4 小时前
Leetcode - 双周赛135
算法·leetcode·职场和发展
正点原子5 小时前
【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——4G模块EC20测试 #MINI PCIE #GPS
功能测试·stm32·单片机·嵌入式硬件·4g模块
Test-Sunny6 小时前
多个定时器同时工作时,会出现哪些常见的bug ,如何解决??(定时任务未实时更新但刷新后正常的问题分析)
功能测试·bug·集成测试
测试界萧萧6 小时前
17:00开始面试,17:08就出来了,问的问题有点变态。。。
自动化测试·软件测试·功能测试·程序人生·面试·职场和发展
正点原子7 小时前
【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——RS232接口测试
linux·功能测试·stm32·单片机·嵌入式硬件·stm32mp257
写不出bug的小李18 小时前
首次打蓝桥杯总结(c/c++B组)
职场和发展·蓝桥杯