Xcodebuild稳定性测试go脚本
[本文出自天外归云的博客园]
简单封装下xcodebuild test命令,写一个执行xcode测试的go程序,可以设定单case执行次数,也可以二次组装调用进行多个case的测试,代码如下:
package main import (
"flag"
"fmt"
"os/exec"
"strings"
) func qnegTestRunner(workspacePath string, scheme string, targetMethod string) (testResult int) {
targets := strings.Split(targetMethod, "/")
className := targets[1]
methodName := targets[2]
var err error
var cmd *exec.Cmd
var result []byte
commandString := fmt.Sprintf("xcodebuild test -workspace %s -scheme %s -destination 'platform=iOS Simulator,name=iPhone 7,OS=12.2' -only-testing:%s", workspacePath, scheme, targetMethod)
cmd = exec.Command("/bin/bash", "-c", commandString)
result, err = cmd.Output()
passedSign := fmt.Sprintf("'-[%s %s]' passed", className, methodName)
if strings.Contains(string(result), passedSign) {
testResult = 1
} else {
fmt.Println(commandString)
fmt.Println(strings.Trim(string(result), "\n"))
fmt.Println(err)
testResult = 0
}
return
} /*
终端执行该脚本命令如下:
go run exeTest.go -exeCount 3 -projectPath "/Users/admin/Desktop/zenki/XX" -scheme "Scheme" -targetMethod "Scheme/ClassName/methodName"
*/
func main() {
var targetMethod = flag.String("targetMethod", "", "目标方法")
var exeCount = flag.Int("exeCount", 3, "运行次数")
var projectPath = flag.String("projectPath", "/Users/admin/Desktop/zenki/XX", "项目路径")
var scheme = flag.String("scheme", "", "选择主题")
flag.Parse()
workspacePath := fmt.Sprintf("%s%s", *projectPath, "/XX.xcworkspace")
finalResult := 0
for index := 1; index <= *exeCount; index++ {
fmt.Println(fmt.Printf("[%d time execute] %s", index, *targetMethod))
finalResult += qnegTestRunner(workspacePath, *scheme, *targetMethod)
}
if finalResult == *exeCount {
fmt.Println(fmt.Sprintf("Execute %d times, all passed.", *exeCount))
} else {
fmt.Println(fmt.Sprintf("Execute %d times, %d times passed.", *exeCount, finalResult))
}
}
Xcodebuild稳定性测试go脚本的更多相关文章
- 移动性能测试 | 持续集成中的 Android 稳定性测试
前言 谈到Android稳定测试,大多数会联想到使用monkey工具来做测试.google官方提供了monkey工具,可以很快速点击被应用,之前我有一篇帖子提到了monkey工具的使用,详见: htt ...
- Android-monkey稳定性测试(多台设备同时进行)
1.目的(原创文章,转载请注明出处-) 主要为指引开展android平台应用的稳定性测试,尽可能地在应用发布前发现crash及an ...
- Android客户端稳定性测试——Monkey
修改时间 修改内容 修改人 2016.6.20 创建 刘永志 2016.6.29 完成 刘永志 Monkey简介: Android SDK自带的命令行测试工具,向设备发送伪随机事件流,对应用程序进行进 ...
- [转贴]LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---IBM 的 linux test project
https://blog.csdn.net/melody157398/article/details/24354415 LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---I ...
- 基于jmeter+perfmon的稳定性测试记录
1. 引子 最近承接了项目中一些性能测试的任务,因此决定记录一下,将测试的过程和一些心得收录下来. 说起来性能测试算是软件测试行业内,有些特殊的部分.这部分的测试活动,与传统的测试任务差别是比较大的, ...
- Monkey 稳定性测试
学习网址: https://blog.csdn.net/lucytan01/article/details/79958727 https://blog.csdn.net/hebbely/article ...
- 对Linux系统内核版本稳定性测试介绍
对Linux系统内核版本稳定性测试介绍 在对 Linux 内核版本稳定性的测试中,需要明确地声明并证明为什么版本是稳定的或者是不稳定的. 然而还没有被证明和证实当前现有的系统范围内的压力测试可以测试 ...
- LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---IBM 的 linux test project
LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---IBM 的 linux test project Peter盼 2014-04-23 11:25:49 20302 收藏 ...
- LTP--linux稳定性测试 linux性能测试 ltp压力测试 内核更新 稳定性测试
LTP--linux稳定性测试 linux性能测试 ltp压力测试 zhangzj1030关注14人评论33721人阅读2011-12-09 12:07:45 说明:在写这篇文章之前,本人也不曾了 ...
随机推荐
- PS用户配置服务连接出错
PS用户配置服务连接出错 [2019-07-30 14:58:25.475]-[INFO ]-[xxxx.profileserver.service.ProfileServerImpl:1430][1 ...
- Java SpringBoot 手记
SpringBoot Git:https://github.com/spring-projects/spring-boot Maven (mvn)环境配置: 下载地址:http://maven.apa ...
- Linux运维技术之NFS网络文件系统
NFS:网络文件系统,只能工作在Unix/linux之间,不能与windows之间交互. NFS文件系系统只能基于ip来认证! RPC:远程过程调用,简化分布式应用程序的开发, 对Linux系统而言, ...
- C语言几个术语: 数据对象,左值,右值
1. 数据对象 赋值表达式语句的目的是把值存储到内存位置上. 用于存储值的数据存储区域统称为数据对象. 2. 左值 左值是C语言的术语, 用于标识特定数据对象的名称或表达式. 对象指的是实际的数据存储 ...
- FFLIB
用于分布式程序的c++类库,封装了socket.rpc.lua.CQRS框架.算法等组件,适于SNS.WEBGAME.MMO后台程序, about C++,linux https://github.c ...
- 项目Beta冲刺随笔集合
班级:软件工程1916|W 作业:项目Beta冲刺 团队名称:SkyReach 目标:完成项目Beta版本 项目Github地址 评审表 团队博客汇总 队员学号 队员姓名 个人博客地址 备注 2216 ...
- 洛谷P5092 [USACO2004OPEN]Cube Stacking 方块游戏 (带权并查集)
题目描述 约翰和贝茜在玩一个方块游戏.编号为 1\ldots n 1-n 的 n n ( 1 \leq n \leq 30000 1≤n≤30000 )个方块正放在地上,每个构成一个立方柱. 游戏开始 ...
- hbase与Hive的集成
1 HBase与Hive的对比 1.Hive (1) 数据仓库 Hive的本质其实就相当于将HDFS中已经存储的文件在Mysql中做了一个双射关系,以方便使用HQL去管理查询. (2) 用于数据分析. ...
- day006-python函数
一.定义函数 def 函数名(): 函数体代码 例: #定义函数 def email(): print('send email') #调用执行函数 email() 二.函数的返回值 def email ...
- selenium 2 设置浏览器安装路径
selenium 2由于调用的是真实的浏览器,所以当你的浏览器不是安装在默认路径下,你就需要设定浏览器启动路径:若是默认路径,则程序中不需设定浏览器启动路径. 比如说用firefox进行测试 1. f ...