首页 > 系统相关 > APP自动化-异常截图-利用内存空间(class)

APP自动化-异常截图-利用内存空间(class)

时间:2023-05-16 19:47:31浏览次数:49  
标签:appium driver1 APP 内存空间 caps pytest import class

根据 APP自动化-异常截图-利用内存空间(list),这里还可以使用类的方法。

在Package目录下建立一个什么情况下可以操作内存空间.py的文件,里面建立一个类

class Comtext:  # 类名可以随便定义
    pass

 然后在conftest1中设置引入类,然后使用python内置函数 setattr函数映射

import pytest

from appium.webdriver import Remote  # 导入远程包
from appium.webdriver.common.appiumby import AppiumBy as By  # 引用appium的驱动常规AppiumBy 引入By模块,别名为BY
from selenium.webdriver.support.wait import WebDriverWait  # 引入Selenium的WebDriverWait服务
from selenium.webdriver.support import expected_conditions as EC  # 引入Selenium的expected_conditions服务别名为ec
from appium.webdriver.common.touch_action import TouchAction  # 引入触摸事件方法导包为TouchAction


@pytest.fixture()  # pytest夹具使用,pytest中构建供用例使用的数据
def driver():
    caps = {}
    caps["platformName"] = "Android"
    caps["appium:deviceName"] = "emulator-5554"
    caps["appium:platformVersion"] = "7.1.2"
    caps["appium:appPackage"] = "com.zhao.myreader"
    caps["appium:appActivity"] = "com.zhao.myreader.ui.home.MainActivity"
    caps["appium:notReset"] = "True"

    url = "127.0.0.1:4723/wd/hub"

    # global driver                       # 第一种,使用提升作用域完成
    # from Package.什么情况下可以操作内存空间 import list1
    #
    # driver1 = Remote(url, caps)
    # list1.append(driver1)
    from Package.什么情况下可以操作内存空间 import Comtext  # 引入类

    driver1 = Remote(url, caps)
    setattr(Comtext, "driver", driver1)    # setattr是python的内置函数,可以向一个类,进行外部的内容定义和设置,python的反射机制
    # 设置Comtext这个类,的属性是"driver",值是driver1

wait = WebDriverWait(driver1, 2) return driver1, wait @pytest.fixture() # pytest夹具使用,pytest中构建供用例使用的数据 def by(): return By # 这里的By是上面引入的AppiumBy包,为了避免循环递归,函数改为小写by @pytest.fixture() # pytest夹具使用,pytest中构建供用例使用的数据 def ec(): return EC # 这里的By是上面引入的expected_conditions AS EC包,为了避免循环递归,函数改为小写by

 然后去conftest-2中去引入类

import pytest


# 以下是pytest提供异常截图的方法
@pytest.hookimpl(hookwrapper=True)  # 写死的
def pytest_runtest_makereport(item, call):  # 写死的
    # pytest会将找到的用例存在迭代器中
    outcome = yield  # 通过这个方法接受所有用例的结果
    result = outcome.get_result()
    # print("用例的标识数据:", result)
    if result.when == "call":
        print("用例的执行结果:", result)
        if result.outcome == "failed":
            """进行截图"""
            # from Package.什么情况下可以操作内存空间 import list1
            # driver1 = list1[-1]
            from Package.什么情况下可以操作内存空间 import Comtext
            driver1 = getattr(Comtext, "driver")  # 去类中拿属性
            driver1.save_screenshot("异常截图11.png")  #

然后运行,运行完进行异常截图

标签:appium,driver1,APP,内存空间,caps,pytest,import,class
From: https://www.cnblogs.com/gezirui/p/17406585.html

相关文章

  • APP测试 - install选择设备安装
    0.场景电脑连接了多个设备(包括开启了的模拟器)在电脑连接了多个设备时候,需要指定设备完成apk的安装此时如果直接使用adbinstall执行安装,会报错morethanonedevice/emulator 一、查看设备列表的idadbdevices 二、选择设备安装apk其中-r表示强制替换安装-s选择......
  • APP自动化-异常截图-利用内存空间(list)
    先在package目录下建立一个文件,如:什么情况下可以操作内存空间.py里面建立一个列表:list1=[]因为conftest可以在很多层级都存在比如:我们在testcase目录下的conftest-1文件中没有pytest异常截图的那段代码(最下面注释掉的部分)1#!/usr/bin/envpython2#-*-coding:utf-8......
  • 什么是 SAP UI5 Application Index
    SAPUI5ApplicationIndex是一个集成在SAPFioriLaunchpad中的应用程序索引。它提供了一个集中式的位置,用于展示和访问已安装的SAPUI5应用程序。在SAPFioriLaunchpad的主页上,用户可以看到一个应用程序索引页面,其中包含了所有已经安装的SAPUI5应用程序。这个索引页面提供了......
  • SAP Fiori Tools 的 Application Reload Middleware 介绍
    通过applicationreloadmiddleware的帮助,开发者可以在进行FioriElements开发的过程中,即时预览这些尚未完全完成开发的应用。即时的意思是,一旦有FioriElements项目相关的文件发生变化,ApplicationReloadmiddleware会自动刷新应用。npx是一个Node.js工具,它可以让......
  • APP和小程序共同塑造现代化政务服务
    随着移动互联网的飞速发展,政务服务也开始向移动端转移,政务App和小程序结合,可以使政府更好地实现数字化转型和提供优质的政务服务。本文将探讨政务App和小程序的结合优势,以及如何推进政务App和小程序的发展。移动政务服务应用面临的是有限的手机桌面、有限的用户时间与有限的用......
  • 使用nfs作为kubernetes动态storageClass存储
    使用nfs作为kubernetes动态storageClass存储1、StorageClass介绍参考网址:https://github.com/kubernetes-retired/external-storage​https://blog.51cto.com/xuexinhuan/5394844StorageClass对象会定义下面两部分内容:1:PV的属性.比如,存储类型,Vo......
  • uni-app 踩坑之旅5
    收件/发件箱列表需要个快速调到写信界面的按钮,就想到了通过浮动按钮来跳转,查了下文档,发现了个浮动按钮:https://uniapp.dcloud.net.cn/component/uniui/uni-fab.html使用的话也比较简单: 接着问题来了,我想更换显示图标,官方文档上写的是icon属性: 去到uni-icons里面找到......
  • 企业培训APP开发功能
    企业培训APP开发可以通过以下步骤实现:确定需求:明确培训APP的目的和功能,确定开发的规模和项目进度。选择开发平台:选择适合企业需求的开发平台,比如AppStore或者小程序平台,或者使用第三方移动端开发服务。开发APP:根据需求分析,进行APP的界面设计、功能开发、数据库设计等工......
  • app直播源码,css宽度不固定,水平居中
    app直播源码,css宽度不固定,水平居中1.相对定位:  #box{position:relative;left:50%;float:left;} #inner{position:relative;left:-50%;} ​需考虑浮动带来的问题 2.利用diplay:table来解决: #box{display:table;margin:0auto}/*不支持ie6,ie7*/  3.CSS3fl......
  • 直播系统app源码,滑块效果、slider用法
    直播系统app源码,滑块效果、slider用法    <viewclass="selconbox">    <viewclass="seltit">购买力</view>    <viewclass="progressbox">     <viewclass="zijintit"wx:if="{{price==0}}......