iOS自动化,知识点1

article/2025/8/21 16:16:18

知识点1:

初始化连接手机

1.查找udid和包名

2,appium连接ios手机的条件

from appium import webdriver
from selenium.webdriver.common.by import By
import timedef test_01():desired_caps = dict()desired_caps["platformName"]="iOS"desired_caps["appium:platformVersion"]="15.0"desired_caps["appium:deviceName"]="iPhone 11 Pro"desired_caps["appium:app"]="com.XXXXXXX.hecmccmobile"desired_caps["udid"]='0000XXX0-000XXXXX1DA802E'driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)time.sleep(10)if __name__ == '__main__':test_01()

3.打开app的代码

知识点2:

卸载ios手机app

def uninstall_app(udid="00008030-000D24563410402E"):os.system("ideviceinstaller -u " + udid + " -U com.wondertek.hecmccmobile")# 卸载app

知识点3:

导出iOS手机日志到电脑

import configparser
import os
import timerootPath = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
path = rootPath + "/log/"rootPath_ini = os.path.join(rootPath, "config.ini")
cf = configparser.ConfigParser()  # 初始化
cf.read(rootPath_ini)  # 读文件
udid = cf.get("config", "udid")  # 发信服务器def isExists(folder):if os.path.exists(folder):  # 判断文件夹是否存在passelse:os.mkdir(folder)  # 创建文件夹以及子文件夹def open_log(log_name):times = time.strftime("%Y-%m-%d_%H_%M_%S", time.localtime())log_path = pathfilename = log_name + times + ".log"isExists(log_path)logs = os.path.join(log_path, filename)print(r"idevicesyslog >> %s &" % logs)os.system(r"idevicesyslog -u " + udid + r" >> %s &" % logs)time.sleep(2)def kill_log():# 杀进程os.system("pkill idevicesyslog")if __name__ == '__main__':open_log("DEbug")time.sleep(7)print("关闭")kill_log()

知识点4:

发送email邮件

import configparser
import os
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header'''
发送email代附件
'''def sendemail_l(report_name):# report_name为文件名称html_msg = """<p>iOS手机稳定性测试报告已发送至各位邮箱,请及时查收。</p><p>如有疑问请及时联系。</p>"""# html_msg为文件正文内容msg = MIMEMultipart()msg['From'] = Header('王浩')  # 发送者# msg['To'] = Header('接收者姓名')  # 接收者subject = 'iOS手机稳定性测试报告'    # 邮件标题msg['Subject'] = Header(subject, 'utf-8')  # 邮件主题msg.attach(MIMEText(html_msg, 'html', 'utf-8'))# 邮件信息配置rootPath = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))rootPath_report = os.path.join(rootPath, "Report")# 确定Report文件夹att1 = MIMEText(open(os.path.join(rootPath_report, report_name), 'rb').read(), 'base64', 'utf-8')att1["Content-Type"] = 'application/octet-stream'# 构造附件,这里的filename可以任意写,写什么名字,邮件中显示什么名字att1.add_header("Content-Disposition", "attachment", filename=("gbk", "", report_name))# 非中文写法# att1["Content-Disposition"] = 'attachment; filename="test.html"'msg.attach(att1)rootPath_ini = os.path.join(rootPath, "config.ini")cf = configparser.ConfigParser()  # 初始化cf.read(rootPath_ini)  # 读文件mail_host = cf.get("Email", "mail_host")    # 发信服务器mail_user = cf.get("Email", "mail_user")    # 登录账号,及发送邮件账号mail_pass = cf.get("Email", "mail_pass")    # 登录账号授权码mail_str = cf.get("Email", "receivers")    # 收信方邮箱receivers = mail_str.split(",")             # 拆分邮箱print(receivers)smtpObj = smtplib.SMTP()smtpObj.connect(mail_host, 25)  # 25 为 SMTP 端口号smtpObj.login(mail_user, mail_pass)smtpObj.sendmail(mail_user, receivers, msg.as_string())print("邮件发送成功")smtpObj.quit()# 关闭if __name__ == '__main__':sendemail_l("android稳定性测试报告2022-11-11-16_10_02.html")


http://chatgpt.dhexx.cn/article/LFXjhplG.shtml

相关文章

2023主流技术 Appium+IOS 自动化测试环境搭建

关于Appium for IOS Appium是目前最主流的app自动化测试技术&#xff0c;能够同时支持IOS、Android平台上的移动应用自动化测试&#xff0c;能支持众多语言&#xff0c;包括&#xff1a;Java、Python、Ruby、JavaScript等&#xff1b;并且Appium是开源免费使用的。 目前网上的…

ios自动化-1阶段

使用pytestwda执行自动化 整体结构代码层级 #目前待改进的地方 1.执行速度慢&#xff0c;wda获取dom树的效率太低 2.稳定性差&#xff0c;经常会出现一些弹窗导致失败&#xff0c;可参考安卓弹窗处理 watcher() 优化 3.有部分元素定位不到&#xff0c;目前怀疑是层级问题&…

Visio 画流图 程序流图 斜线

如果直接在Visio中选择连接线来连接&#xff0c;会有直角出现&#xff0c;但是我们需要斜线&#xff1a; 解决方法&#xff1a; 选中直角连接线&#xff0c;右键&#xff0c;选择“直线连接线”&#xff1a; 这样我们就能画出想要的斜线了&#xff0c;也就可以画出程序流图了…

Visio设置跨线之间不避让

文章目录 设置方法1. 选中所需设置的直线&#xff1b;2. 菜单选中设计&#xff1b;3. 选中连接线&#xff1b;4. 选中显示跨线。 设置方法 1. 选中所需设置的直线&#xff1b; 2. 菜单选中设计&#xff1b; 3. 选中连接线&#xff1b; 4. 选中显示跨线。

Visio画ER图

建立数据库时我们需要考虑数据之间的关系&#xff0c;为了理清数据之间的关系我们需要对数据进行统一的整理。对于较复杂的数据库我们需要建立数据库模型&#xff0c;具体可分为两步&#xff1a;首先对数据库进行结构分析并使用树、表等描述数据&#xff0c;然后分析数据库的操…

visio 教程-绘图技巧、快捷键大全

visio 绘图技巧、快捷键大全&#xff0c;一键对齐 前言一、常用快捷键二、使用技巧对象移动对象复制绘制直线一键对齐 自动排列&#xff08;非常好用&#xff09;辅助线对齐图像边缘空白消除word中visio图编辑技巧去掉直线交叉点增加连接点 前言 Visio 是Office软件系列中的负…

visio画太极图

步骤一 添加两个圆&#xff0c;且大圆的半径是小圆的2倍。 步骤二 往小圆添加一条直线作为直径 步骤三 选中小圆和直径,依次点击开发工具–操作–连接&#xff0c;然后选中连接后的小圆&#xff0c;再依次点击开发工具–操作–修建&#xff0c;可以分离出如下所示的两个…

visio拉动线条总是保持直线状态

** 有时候在visio中画图想画直线&#xff0c;但是线条总是会弯折&#xff0c;为了解决和个问题&#xff0c;如下做&#xff1a;鼠标拖住线条的一个端点&#xff0c;按住ctrlshift,线条就只能在水平或垂直方向上移动&#xff1a;** 1、鼠标选择一个端点&#xff1a; 2、按住ctr…

Visio 2013画直线问题总结(折线变直,交叉时产生的交叉桥)

问题1&#xff1a;我们画直线时画出来的是折线&#xff0c;折线变直的方法&#xff1a;选中线条&#xff0c;点击鼠标右键&#xff0c;选择“直线连接线”如下图&#xff1a; 问题2&#xff1a;直线交叉时产生的交叉桥&#xff0c;影响整体美观&#xff0c;去掉交叉桥的方法&am…

WinForm学习

文章目录 一、C#是什么&#xff1f;二、C#的特点三、了解C#、.NET、Winform的关系四、快速创建Winform程序五、Winform菜单和工具栏六、Form初始化、布局总结 一、C#是什么&#xff1f; C#是一个现代的、通用的、面向对象的、面向组件、结构化语言C#的构想十分接近C和C,是一门…

winform利用html开发,Winform开发框架之HTML编辑控件介绍

我们知道,在做Web开发的时候,很多控件可以用来做HTML内容编辑的,Winform开发就相对少很多,不过很多时候,我们在做Winform开发的时候,也是需要处理这样的场景的。例如发送HTML邮件内容的时候,在给客户编写内容丰富的反馈意见或者邮件的时候等等,因此有必要做一个支持好H…

Winform开发框架之框架演化

原文地址为&#xff1a; Winform开发框架之框架演化 国庆去了一趟北京&#xff0c;回来一直忙着各种各样的事情&#xff0c;有公司的&#xff0c;有个人的&#xff0c;就没停过来&#xff0c;所以很久没有写博客了&#xff0c;写博客要有一个好的心情及一个好的思路&#xff0…

Winform开发框架之介绍

winform开发框架&#xff0c;尽量减少程序员在界面中的代码量和工作量&#xff0c;Model自动生成&#xff0c;界面以及控件自动生成&#xff0c;简单的逻辑自动生成。自动生成的界面已经实现简单逻辑增删改查功能。 其他开发框架都已经或多火烧实现了这些功能&#xff0c;如果代…

C# winform开发的考试系统

C# winform开发的考试系统&#xff0c;数据库sql server2014&#xff0c;分为教师端和学生端&#xff0c;两端都采用经典的三层架构&#xff0c;压缩包里有数据库文件&#xff0c;可以直接附加使用&#xff0c;另外还有sql脚本&#xff0c;也可以还原数据库使用&#xff0c;每行…

C#之winform(软件开发)

C#之winform(软件开发) 1.MD5加密 &#xff08;1&#xff09;其实就是对数据库里面的密码进行再加密&#xff0c;不至于让数据库一攻就破。 从这个链接先简单了解一下&#xff1a;MD5在线加密链接 你只能把字符串变成MD5值&#xff0c;但是无法将MD5值变成字符串。 using S…

WinForm框架开发教程 - 如何实现简单化开发?

在Winform开发领域开发过十多年的项目中&#xff0c;见证着形形色色的架构和官方技术的应用&#xff0c;从最早类似Winform模式的WebForm技术&#xff0c;到接着的JQuery界面组件&#xff0c;再到Asp.net Core的技术应用&#xff0c;以及后来的纯前端技术出现&#xff0c;Angul…

Winform开发框架之终极应用

原文地址为&#xff1a; Winform开发框架之终极应用 在前面两篇随笔&#xff0c;都围绕着我的Winform开发框架介绍一些重要的组件&#xff0c;如字典模块封装《Winform开发框架之字典数据管理》和权限管理系统模块封装《Winform开发框架之权限管理系统》。本框架主要的功能如下…

Visual Studio C# WinForm开发入门(4):概述

目录 一.Winform入门1.WinForm项目结构2.窗口设计与控件布局3.窗口事件4.时间显示器小练习 二.WinForm布局开发1.手动布局解决自适应问题2.WinForm布局属性3.WinForm布局器 三.WinForm常用控件1.界面展示2.实体类 Student(封装信息)3.逻辑事件代码Form.cs 四.图片框与项目资源1…

WinForm(一) WinForm入门与基本控件使用

一.Winform入门 WinForm 是 Windows Form 的简称&#xff0c;是基于 .NET Framework 平台的客户端&#xff08;PC软件&#xff09;开发技术&#xff0c;一般使用 C# 编程。在VS2019中&#xff0c;C# WinForm 编程需要创建「Windows窗体应用程序」项目。Windows 窗体应用程序是 …

C# WinForm开发——窗体问题

本文讨论了C# WinForm开发中关于 窗体 的一些问题&#xff0c;如&#xff1a;单文档与多文档程序、避免同一窗体多次打开、多文档程序子窗体显示、跨窗体传值、高分屏&#xff08;125%&#xff09;下控件字体变模糊等&#xff0c;下面一一阐述。 目录 1 单文档与多文档程序1.1…