当前位置: 首页 > article >正文

集成测试的流程总结

        首先我们的目的是进行自动化测试,也就是通过cl工具来对我们的项目用我们自己写的yaml文件中的命令来测试项目,这是我们的根本性目的,现在用github action cl工具以及maestro cli 云端作为例子通一遍流程。

        首先用xcode创建我们的ios app应用程序,也就是创建我们的项目,然后把我们的项目我们自己建立的github仓库,这里是命令部分

        

git init                             # 初始化本地 Git 仓库(只需第一次)
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/你的用户名/MyApp.git
git push -u origin main              # 把代码推送到 GitHub 的 main 分支

        现在我们创建的项目上传到了github仓库的main分支,现在我们就来写yaml文件,首先我们要用github action 测试流,我们在项目根目录创建.github/workflows/maestro.yml文件来放我们的测试流命令。

        

name: Maestro Cloud Testson:push:branches: [main]pull_request:branches: [main]jobs:maestro-tests:runs-on: macos-latesttimeout-minutes: 30steps:- name: Checkout codeuses: actions/checkout@v3- name: Setup Xcodeuses: maxim-lobanov/setup-xcode@v1with:xcode-version: latest-stable- name: Build .apprun: |xcodebuild \-scheme "App" \-sdk iphonesimulator \-configuration Debug \-derivedDataPath build \IPHONEOS_DEPLOYMENT_TARGET=16.2 \clean build- name: Verify Deployment Targetrun: |plutil -p build/Build/Products/Debug-iphonesimulator/App.app/Info.plist | grep MinimumOSVersionecho "Deployment target should be 16.2"- name: Install Maestro CLIrun: |curl -Ls "https://get.maestro.mobile.dev" | bashecho "$HOME/.maestro/bin" >> $GITHUB_PATH- name: Verify Maestro installationrun: maestro --version- name: Run Maestro Cloud Testsenv:MAESTRO_API_KEY: ${{ secrets.MAESTRO_API_KEY }}MAESTRO_PROJECT_ID: ${{ secrets.MAESTRO_PROJECT_ID }}run: |maestro cloud \--api-key "$MAESTRO_API_KEY" \--project-id "$MAESTRO_PROJECT_ID" \"$GITHUB_WORKSPACE/build/Build/Products/Debug-iphonesimulator/App.app" \"$GITHUB_WORKSPACE/.maestro"

        这里我们引入了MAESTRO_API_KEY: ${{ secrets.MAESTRO_API_KEY }}, MAESTRO_PROJECT_ID: ${{ secrets.MAESTRO_PROJECT_ID }},所以我们要在我们的仓库settings添加action 从我们的云端控制台拿到我们的云端api-key project-id然后存进去,我们就可以在yaml文件里面写上传到云端的命令了。然后在测试之前呢我们需要xcode build构建我们项目的.app文件,因为测试要拿到完整的项目从.app文件里面拿到,由于target版本不兼容,云端只能识别16.2版本的模拟器,所以我们需要把ios deployment的值改为ios 16.2让版本兼容,使用xcodebuild命令打包应用。部署目标(iOS)需要降低到16.2以避免兼容性问题。

        上面的步骤完成了之后,我们就可以git push origin main命令直接上传更新远程仓库,然后自动化测试通过yml文件的命令来测试,当然还有我们.maestro文件来设定把项目传到云端控制台之后指向的测试命令,也就是 .maestro文件夹下面的yaml文件。

        那么现在我们就可以在github action 以及maestro 控制台看到我们的测试成功的信息了。

        我们在main分支上创建一个新分支feature,我们随便改一下文本内容,然后我们在cursor发出拉取请求上传到 origin feature分支的修改请求,然后我们就可以在pull requests看到我们的请求,我们接受请求之后,自动进行拉取测试,然后测试完之后,action以及云端控制台都可以看到,然后我们就可以合并到main分支了。然后提示我们删除feature分支,删除之后就合并成功了,在这里我们就实现了拉取的时候自动化测试拉取代码,测试完成没有报错就可以进行合并了。

        这就是集成测试的流程,至少我是这么理解的,剩下集成测试无非对于我就是yaml文件里面的命令,我需要去了解不同的命令api 也就是我要知道那些api可以解决我的测试需求,也就是知道了流程就熟悉里面的小扳手,这就需要经验的积累的,也就是实战或者说不断的练习了,总之集成测试我通过文档熟悉了测试流程,大致看了api的功能以及简单的yaml文件命令是怎么写出来的,以及有什么用,跟写代码其实差不多,这就是我对集成测试现在的了解了,希望大家可以给我建议,或者说我还有遗漏的流程可以帮我补充一下。

        

http://www.lryc.cn/news/2397187.html

相关文章:

  • Redis最佳实践——性能优化技巧之Pipeline 批量操作
  • Node.js 项目调试指南
  • win32相关(虚拟内存和物理内存)
  • Linux操作系统安全管理概述与命令操作
  • 《操作系统真相还原》——中断
  • [yolov11改进系列]基于yolov11引入特征融合注意网络FFA-Net的python源码+训练源码
  • 助力活力生活的饮食营养指南
  • 【软件测试】测试框架(unittest/pytest)
  • Kotlin 中 companion object 扩展函数详解
  • MySQL半同步复制配置和参数详解
  • 使用FastAPI构建车牌检测识别服务
  • pikachu通关教程-File Inclusion
  • CppCon 2014 学习:Defensive Programming Done Right.
  • 《机器学习数学基础》补充资料:韩信点兵与拉格朗日插值法
  • Spring Boot中保存前端上传的图片
  • 【HTML-15.2】HTML表单按钮全面指南:从基础到高级实践
  • 2025最新 MacBook Pro苹果电脑M系列芯片安装zsh教程方法大全
  • 43. 远程分布式测试实现
  • 探索大语言模型(LLM):RSE流程详解——从文档中精准识别高相关片段
  • 【C++】类的构造函数
  • 【ISP算法精粹】动手实战:用 Python 实现 Bayer 图像的黑电平校正
  • 分布式存储技术全景解析:从架构演进到场景实践
  • JVM——从JIT到AOT:JVM编译器的云原生演进之路
  • Linux中的mysql逻辑备份与恢复
  • [HTML5]快速掌握canvas
  • Gartner《Emerging Patterns for Building LLM-Based AIAgents》学习心得
  • Hive SQL优化实践:提升大数据处理效率的关键策略
  • vue中父子参数传递双向的方式不同
  • LLM 使用 MCP 协议及其原理详解
  • DAY 36神经网络加速器easy