集成测试的流程总结

首先我们的目的是进行自动化测试,也就是通过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文件来放我们的测试流命令。

TypeScript 复制代码
name: Maestro Cloud Tests

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  maestro-tests:
    runs-on: macos-latest
    timeout-minutes: 30
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
      - name: Setup Xcode
        uses: maxim-lobanov/setup-xcode@v1
        with:
          xcode-version: latest-stable
      - name: Build .app
        run: |
          xcodebuild \
            -scheme "App" \
            -sdk iphonesimulator \
            -configuration Debug \
            -derivedDataPath build \
            IPHONEOS_DEPLOYMENT_TARGET=16.2 \
            clean build
      - name: Verify Deployment Target
        run: |
          plutil -p build/Build/Products/Debug-iphonesimulator/App.app/Info.plist | grep MinimumOSVersion
          echo "Deployment target should be 16.2"
      - name: Install Maestro CLI
        run: |
          curl -Ls "https://get.maestro.mobile.dev" | bash
          echo "$HOME/.maestro/bin" >> $GITHUB_PATH
      - name: Verify Maestro installation
        run: maestro --version
      - name: Run Maestro Cloud Tests
        env:
          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文件命令是怎么写出来的,以及有什么用,跟写代码其实差不多,这就是我对集成测试现在的了解了,希望大家可以给我建议,或者说我还有遗漏的流程可以帮我补充一下。

相关推荐
luiyarch2 天前
汽车电子ISO 26262功能安全系列(第29期):软件集成测试与嵌入式软件验证——把“零件”拼成“整机”
安全·汽车·集成测试
艾芯微科技2 天前
B1040A2|DFN1006‑2L 超微型肖特基二极管,便携设备高频整流优选国产器件
网络·单片机·嵌入式硬件·集成测试·51单片机
会周易的程序员5 天前
aiDgeController 软PLC虚拟机stvm集成测试报告
c++·物联网·架构·集成测试·st·软plc·iec61131
QH139292318807 天前
R&S FSPN50 FSPN26 FSWP26 相位噪声分析仪典型应用案例
人工智能·百度·微信·集成测试·音视频·facebook·oneapi
咖啡星人k8 天前
2026 AI 自动化测试:让 AI 帮你写用例、跑测试、修 Bug(MonkeyCode 云端实战)
人工智能·功能测试·单元测试·测试用例·bug·集成测试
Lost of 程序猿9 天前
ASP.NET Core 测试实战:从单元测试到集成测试的全链路质量保障
单元测试·asp.net·集成测试
萧瑟余晖12 天前
Java深入解析篇三十九之集成测试
java·开发语言·集成测试
QH1392923188013 天前
Keysight N5183B N5183B 微波模拟信号发生器
网络·单片机·嵌入式硬件·集成测试·信息与通信
普密斯科技14 天前
在线图像测量仪HM-1120如何实现电机轴承从抽检到全检的跨越
计算机视觉·3d·集成测试·测量
凤山老林19 天前
高保真集成测试:Spring Boot 结合 Testcontainers 的工程落地
spring boot·后端·集成测试