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

-mini

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

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

基于MiniTest进行pytest改造

使用方法

准备测试小程序

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

成功运行后关闭

安装&更新

pip install pytest-mini --upgrade

引入插件

新建conftest.py文件

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

例如demo/cases/conftest.py

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

编写页面对象

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

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

在conftest.py中添加

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

import allurefrom 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

import os
import pytest
from pytest_mini.constant import Constanttest_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文件

查看报告

图片

报告截图

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/745155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Selenium库原代码WebDriver及WebElement方法属性总结

简单示例: from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as ECdriver webdriver.Chrome()try:driver.ge…

docker 部署redis

1. 拉取redis镜像 docker pull redis2. 创建持久化存储,日志,配置文件目录 mkdir -p /docker/redis/{conf,data,log} 3. 创建日志文件 在上面创建的log文件夹中创建日志文件 touch /docker/redis/log/redis.log4. 配置配置文件 下载配置文件地址&am…

npm、nodejs和vue之间关系和区别介绍

本文讲解npm、Node.js和Vue.js这三者之间的关系和区别,以及它们各自的特点。 首先,让我们来了解一下Node.js。 **Node.js** 是一个开源的服务器端运行环境,它允许开发者使用JavaScript来编写服务器端的代码。在传统的Web开发中&#…

[数据集][图像分类]零售行业商品分类数据集256016张357类别

数据集类型:图像分类用,不可用于目标检测无标注文件 数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):256016 分类类别数:356 类别名称:["1","2"…

简述你对RPC,RMI的理解

RPC:在本地调用远程的函数,远程过程调用,可以跨语言实现,httpClient RMI:远程方法调用,Java中用于实现RPC的一种机制,RPC的Java版本是J2EE的网络调用机制,跨JVM调用对象的方法&…

HSE化工应急安全生产管理平台:衢州某巨大型化工企业的成功应用

在化工行业中,安全生产一直是至关重要的议题。为了提高生产安全性、降低成本并提升企业形象,衢州某巨大型化工企业引入了HSE化工应急安全生产管理平台,取得了显著的改善和获益。 该平台的核心功能包括风险管理和应急预案制定。通过对化工生产…

基于SpringBoot+Druid实现多数据源:注解+编程式

前言 本博客姊妹篇 基于SpringBootDruid实现多数据源:原生注解式基于SpringBootDruid实现多数据源:注解编程式基于SpringBootDruid实现多数据源:baomidou多数据源 一、功能描述 配置方式:配置文件中配置默认数据源&#xff0c…

国产化三防笔记本丨亿道国产加固笔记本FT-2000/4处理器

国产化加固笔记本是指采用国产操作系统和处理器,通过技术手段对其进行硬件加固、软件加密、数据安全等多方面加强处理的产品。这种笔记本电脑通常被用于政府项目、金融行业等对安全性要求极高的领域。 在国产化加固笔记本中,硬件加固是重要的一环。为了保…

用 C# 自己动手编写一个 Web 服务器

在.NET世界中,C#是一种功能强大的编程语言,常被用于构建各种类型的应用程序,包括Web服务器。虽然在实际生产环境中,我们通常会使用成熟的Web服务器软件(如IIS、Kestrel等),但了解如何用C#从头开…

阿里云的服务器迁移到腾讯云

第一次用在线迁移,说下我的感受: 总体说,整个迁移过程非常简单(一个命令都不需要),操作确实很方便,迁移成功后的项目运行环境(本人是通过宝塔安装的LNMP环境)、网站配置、…

全量知识系统的便利设施Amenities(惯式化AI语言设施)的设想及百度AI答问 之1

全量知识系统的便利设施Amenities(惯式化AI语言) Q1.以下是对 我刚刚完成的文档“全量知识系统的便利设施Amenities(惯式化AI语言)的构想”(以后简称“便利设施”篇)的百度AI答复。 在今天和百度AI的沟通…

使用docker搭建mongodb

使用 Docker CLI 搭建 MongoDB 1. 运行 MongoDB 容器 首先,我们使用以下命令来启动一个 MongoDB 容器: docker run -itd --name mongodb_comm -v $PWD/data:/data/db -p 27017:27017 mongo:4.4 --auth参数解释: -itd: 这三个参数通常一起…

云计算有什么作用

云计算能够为企业和个人提供更加灵活、高效的计算资源和服务,接下来小编就带领大家来了解一下云计算有什么作用吧! 一、能够促进创新 云计算能够提供一种全新的协作方式,这个能够让企业中的员工与客户之间进行更加有效的沟通,给企…

深入浅出:Objective-C中使用MWFeedParser下载豆瓣RSS

摘要 本文旨在介绍如何在Objective-C中使用MWFeedParser库下载豆瓣RSS内容,同时展示如何通过爬虫代理IP技术和多线程提高爬虫的效率和安全性。 背景 随着信息量的激增,爬虫技术成为了获取和处理大量网络数据的重要手段。Objective-C作为一种成熟的编程…

吴恩达深度学习笔记:神经网络的编程基础2.9-2.14

目录 第一门课:神经网络和深度学习 (Neural Networks and Deep Learning)第二周:神经网络的编程基础 (Basics of Neural Network programming)2.9 逻辑回归中的梯度下降(Logistic Regression Gradient Descent) 第一门课&#xff…

RAID技术知识详解到RAID 10的linux实现过程

1.RAID技术简介 RAID(Redundant Array of Independent Disks)独立磁盘冗余阵列。通俗来说就是将多个硬盘通过软件或硬件结合成虚拟单台大容量的硬盘使用。 RAID技术的特点: 可以自动检测故障硬盘; 可以重建硬盘坏道的资料&…

【Leetcode每日一刷】顺/逆时针旋转矩阵 |48. 旋转图像、矩阵的螺旋遍历 |54. 螺旋矩阵

一、48. 旋转图像 1.1:题目 48. 旋转图像 1.2:解题思路 题型:顺/逆时针旋转矩阵; ❗❗核心思想/ 关键:不可暴力模拟,先镜像,后水平翻转 这题的意思很简单,就是让我们把矩阵顺时…

可视化搭建一个智慧零售订单平台

前言 智慧零售行业是在数字化浪潮中快速发展的一个领域,它利用先进的信息技术和大数据分析来提升零售业务的效率和顾客体验。智慧零售订单平台,具有跨平台、数据智能清洗和建模,以及更加丰富的数据展示形式等优势。智慧零售订单平台可以以文…

mysql数据库备份学习笔记

数据库备份 方法1 物理备份:xtrabackup 方法2 逻辑备份 mysqldump 参考备份与恢复的方法: 【MySql】Mysql之备份与恢复_mysql数据库备份与还原-CSDN博客 可以借鉴的物理备份: 思路是 先做一次全量备份,然后每天做一次增量备份…

让el-input与其他组件能够显示在同一行

让el-input与其他组件能够显示在同一行 说明&#xff1a;由于el-input标签使用会默认占满一行&#xff0c;所以在某些需要多个展示一行的时候不适用&#xff0c;因此需要能够跟其他组件显示在同一行。 效果&#xff1a; 1、el-input标签内使用css属性inline 111<el-inp…