移动端的自动化基于类实现启动一次应用跑全部用例

1.unittest框架

class TestStringMethods(unittest.TestCase):
    def setUp(self) -> None:  # 每一条测试用例开始前执行
        print("setup")
 
    def tearDown(self) -> None:  # 每一条测试用例结束后执行
        print("teardown")
 
    @classmethod
    def setUpClass(cls) -> None:  # 此类的所有测试执行前执行一次
        print("setupcls")
 
    @classmethod
    def tearDownClass(cls) -> None:  # 此类的所有测试执行后执行一次
        print("teardowncls")

2.pytest框架

setup_class、teardown_class

该方法表示在类中执行测试用例前,只执行1次测试前置和测试后置

setup_method、teardown_method

该方法表示在类中每次执行测试用例前,测试前置和测试后置都会执行一次

setup_function、teardown_function

该方法表示在类外面执行用例过程中,每次都会执行前置和后置。

setup_module、teardown_module

该方法表示只能类外面执行用例过程中,只执行1次。相当于unittest中的setupclass和teardownclass方法

setup、teardown

先介绍第一个大家都比较熟悉的与unittest中的书写一直,这个可以在类中使用,也可以在类外进行使用。

该方法每条用例都会执行

本文就采用的pytest框架,基于类封装启动移动端应用进行用例测试

class driver_base_class():
@classmethod
def setup_class(cls)-> None:
cls.desired_caps = {
"appPackage": "plus.H5EA2E279",
"platformName": "Android",
"deviceName": "cb5c2f8f",
"appActivity": "io.dcloud.PandoraEntry",
"skipServerInstallation": "false"
}
with warnings.catch_warnings():
warnings.filterwarnings("ignore", category=DeprecationWarning)
cls.driver = webdriver.Remote('http://localhost:4723/wd/hub', cls.desired_caps) # 启动app
@classmethod
def teardown_class(cls)-> None:
cls.driver.quit()

在测试用例类中集成上面封装好的启动应用类的方法

class Test_login(driver_base_class):

       """编写测试用例""""

在终端使用 pytest -v test_login.py --alluredir=../reports 即在测试用例中启动测试用例即可

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

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

相关文章

八、ffmpeg录制视频为yuv文件

前言 测试环境: ffmpeg的4.3.2自行编译版本windows环境qt5.12 图片的一些重要知识: RGB图片 位深度:每一个像素都会使用n个二进制位来存储颜色信息。每一个像素的颜色都是由红(Red)、绿(Green&#xff0…

【python】python旅游网数据抓取分析(源码+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

C语言——结构体的应用

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 路还在继续,梦还在期…

webGL技术开发的软件类型

WebGL 是一种在浏览器中渲染 2D 和 3D 图形的 JavaScript API。通过 WebGL,你可以创建各种类型的软件项目,特别是那些需要强大图形渲染能力的项目。以下是一些你可以使用 WebGL 实现的软件项目类型,希望对大家有所帮助。北京木奇移动技术有限…

老生常谈之 JavaScript 中 0.1 + 0.2 != 0.3 的原因

先来一个模棱两可的说法:因为精度丢失、存储溢出的问题 先复习一下二进制的转换方法: 整数:除以基数,取余,自底向上小数:乘以基数,取整,自顶向下 接着,复习一下双精度…

Linux使用操作

各类小技巧 ctrlc强制停止 ctrld退出账户的登录 或者退出某些特定程序的专属页面 history 查看历史命令 !命令前缀,自动执行上一次匹配前缀的命令 ctrlr 输入内容去匹配历史命令 光标移动快捷键 ctrla,跳到命令开头 ctrle,跳到命令结尾…

【C语言_题库】输入4个整数,要求按照从小到大的顺序输出

题目 输入4个整数 要求按照从小到大的顺序输出 书上的学习辅导答案 // 主要部分 int main(){int t,a,b,c,d;printf("请输入四个数:");scanf("%d,%d,%d,%d"

SkyWalking全景解析:从原理到实现的分布式追踪之旅

🎏:你只管努力,剩下的交给时间 🏠 :小破站 SkyWalking全景解析:从原理到实现的分布式追踪之旅 前言第一:SkyWalking简介第二:实现原理概览第三:主键与架构第四&#xff1…

【计算机基础】通过插件plantuml,实现在VScode里面绘制状态机

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

数学与她的

文章目录 定义域函数的定义域:一般地复合函数求解极值,单调性综合考题: 定义域 函数的定义域: 求定义域的原则性问题(通用)分母不为0 偶次根式的被开方式为非负( ≥ 0 ) 偶次根式的…

redis运维(十五) 集合

一 集合 ① 概念 集合的元素在redis里面的世界是member集合: setset集合当中不允许重复的元素,而且set集合当中元素是没有顺序的,不存在元素下标 ② sadd、smembers、srem ③ sismember、srandmember、spop、scard spop 命令用于移除集合中的指定 …

sql语法大全

1,创建数据库 create database 数据库名字; 2,查看所有的数据库名称 show databases; MySQL服务器已有4个数据库,这些数据库都是MySQL安装时自动创建的。 information_schema 和 performance_schema 数据库分别是 MySQL 服务器的数据字典(…

CSS 渐变

linear-gradient() 线性渐变 /* 渐变轴为 45 度,从蓝色渐变到红色 */ linear-gradient(45deg, blue, red);/* 从右下到左上、从蓝色渐变到红色 */ linear-gradient(to left top, blue, red); /* to [left/right] [top/bottom] *//* 色标:从下到上&#…

算法——滑动窗口(Sliding Window)

一、背景知识 滑动窗口算法(Sliding Window): 在给定数组 / 字符串上维护一个固定长度或不定长度的窗口。可以对窗口进行滑动操作、缩放操作,以及维护最优解操作。题型一:固定长度题型二:不固定长度 二、例…

TypeScript 学习笔记 第二部分 webpack 创建typescript项目

【视频链接】尚硅谷TypeScript教程(李立超老师TS新课) 创建webpack 项目 IDE:webstorm 新建一个空的项目运行npm init初始化项目目录结构 1. 安装 webpack:构建工具webpack-cli: webpack的命令行工具typescript&am…

PCIE链路训练-状态机描述1

状态机描述 Config.linkwidth.start: 1. (1)Linkup 0 状态机没有执行链路宽度的升级(upconfiguration of the Link width):那么tx会在所有active的dsp上发送TS1,其中link num为具体内容&a…

git stash 用法总结

目录 1,介绍场景1:场景2: 2,常用命令2.1,基础2.2,进阶1,存储时指定备注2,通过索引来操作指定的存储3,修改存储规则 2.3,查看 stash 修改的具体内容 1&#xf…

Element UI之Dialog 对话框

Dialog 对话框 用于弹出窗口 按需引入方式 如果是完整引入可跳过此步骤 import Vue from vue import { Dialog } from element-ui import element-ui/lib/theme-chalk/base.css import element-ui/lib/theme-chalk/dialog.cssVue.use(Dialog)基础使用 <template><…

摩尔定律,梅特卡夫定律,吉尔德定律

信息系统的三大定律(摩尔定律&#xff0c;梅特卡夫定律&#xff0c;吉尔德定律)有一个清晰的视角&#xff1a; 信息系统不是左边的生产消费系统&#xff0c;而是右边的交易系统&#xff0c;交易系统与生产消费典型的区别在于信息交易过程会产生新的信息&#xff0c;就像钱一样…

c语言——俄罗斯方块

一、游戏效果 俄罗斯方块 二. 游戏背景 俄罗斯方块是久负盛名的游戏&#xff0c;它也和贪吃蛇&#xff0c;扫雷等游戏位列经典游戏的⾏列。 《俄罗斯方块》&#xff08;Tetris&#xff0c;俄文&#xff1a;Тетрис&#xff09;是一款由俄罗斯人阿列克谢帕基特诺夫于1984…