📝 口试求职: 「口试试题小程序」 ,内容涵盖 测试基础、Linux操纵系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相干、性能测试、性能测试、计算机网络知识、Jmeter、HR口试,掷中率杠杠的。(大家刷起来…)
📝 职场履历干货:
软件测试工程师简历上如何编写个人信息(一周8个口试)
软件测试工程师简历上如何编写专业技能(一周8个口试)
软件测试工程师简历上如何编写项目履历(一周8个口试)
软件测试工程师简历上如何编写个人荣誉(一周8个口试)
软件测试行情分享(这些都不相识就别贸然冲了.)
软件测试口试重点,搞清晰这些轻松拿到年薪30W+
软件测试口试刷题小程序免费使用(永久使用)
01 前言
本文将重点报告使用appium
+python对iOS项目在模仿器环境上进行自动化UI测试.并在测试用例结束时,通过leaks工具导出内存图文件,加以分析,来诊断当前应用程序是否存在内存题目.
02 安装环境
留意对齐版本,版本不一致可能会导致脚本执行失败.
1.安装v2.11.4版本的appium
- npm install -g appium
- @2.11.4
复制代码 2.安装v4.24.0版本的selenium
- pip3 install selenium==4.24.0
复制代码 3.安装v4.1.0版本的Appium-Python-Client
- pip3 install Appium-Python-Client==4.1.0
复制代码 4.安装v7.27.0版本的xcuitest
- appium
- driver install xcuitest@7.27.0
复制代码 python包发起使用虚拟环境安装
03 脚本模板
- from appium
- import webdriver
- from appium
- .options.ios import XCUITestOptions
- from appium
- .webdriver.common.appium
- by import AppiumBy
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support import expected_conditions as EC
- from selenium.common.exceptions import NoSuchElementException
- import time
- import subprocess
- import os
- cur_dirctory = os.getcwd()
- app_name = "MemoryGraphDemo"
- output_dir = f"{cur_dirctory}/output"
- app_file_path = f"{cur_dirctory}/app/{app_name}.app"
- def init_driver():
-
- options = XCUITestOptions()
- options.device_name = 'iPhone 16 Pro'
- options.platform_version = '18.0'
- options.app = app_file_path
- options.automation_name = 'XCUITest'
- options.process_arguments = {'env': {'MallocStackLogging': 'YES'}}
- # 配置WDA端口 (可选)
- options.set_capability('wdaLocalPort', 8100)
- options.set_capability('noReset', False)
- options.set_capability('newCommandTimeout', 300)
- driver = webdriver.Remote('http://localhost:4723', options=options)
- return driver
- def export_memory_graph():
- subprocess.run(f"leaks MemoryGraphDemo -outputGraph '{output_dir}/{app_name}'", shell=True)
-
-
- def click(driver, name):
- element = driver.find_element(AppiumBy.NAME, name)
- element.click()
-
- def test(driver):
- # UI测试用例
- time.sleep(1)
- click(driver, "登录")
- def analysis():
- subprocess.run(f"leaks {output_dir}/{app_name}.memgraph -quiet > {output_dir}/analysis.txt", shell=True)
- def main():
- driver = init_driver()
-
- try:
- test(driver)
- export_memory_graph()
- analysis()
-
- finally:
- driver.quit()
-
- if __name__ == "__main__":
- main()
复制代码 04 脚本分析
app_name
测试项目的二进制名称.
按需修改为本身测试的app名称
output_dir
内存图文件、分析结果输出目录.
目标目录必要存在
app_file_path
项目的编译产物…app文件.可通过Xcode在文件目录中Products文件夹下找到.
options.device_name
运行脚本的模仿器器设备名称.可通过xcrun simctl list命令查看模仿器列表
options.platform_version
运行脚本的模仿器设备系统版本
options.set_capability(‘noReset’,True)
每次执行脚本是否重启app项目
options.process_arguments={‘env’:{‘MallocStackLogging’:‘YES’}}
使leaks工具纪录对象创建的堆栈信息
test(driver)
对项目执行的测试用例.比如,完整的订单流程、下单、接单、发货等自动化UI测试流程
export_memory_graph()
使用 leaks 工具将内存图xxx.memgraph文件导出到 output_dir 目录下.
analysis()
对导出的xxx.memgraph文件进行分析.并将结果analysis.txt文件输出到 ouput_dir 目录下
- man leaks
- > If the MallocStackLogging environment variable was set when the application was launched, leaks also prints a stack trace describing where the buffer was allocated.
复制代码 05 Demo
1. clone项目
- git clone https://github.com/tuyuwang/MemoryGraphDemo.git
复制代码 2. 按默认设置启动appium
3. 另启一个终端将切换路径到
MemoryGraphDemo/Scripts目录下
- cd MemoryGraphDemo/Scripts
复制代码 4. 运行appium
_leak.py脚本文件
- python3 MemoryGraphDemo/Scripts/appium
- _leak.py
复制代码 5. 查看分析结果
- cat MemoryGraphDemo/Scripts/output/analysis.txt
复制代码 以下是该demo的完整流程视频演示:
最后: 下方这份完整的软件测试视频教程已经整理上传完成,必要的朋友们可以自行领取 【包管100%免费】
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |