第一次和你见面,我就深深的爱上你-Xcode Bot

最近研究起了 APP 的自动化测试,发现了 Xcode Bot自动化打包测试发布的功能,就开始研究起来。

对于 Xcode Bot的研究也不算精通,写一下入坑的过程帮助一下还没有入坑的新人。

入坑之前需要准备两样东西

  • Xcode: 这个作为 iOS 开发是必不可少的
  • Server: Apple Mac 的一个强大的服务运行软件 强大的现在很多功能我都不会用

配置 Server Xcode 服务

  1. 打开 Server软件

    点击我们下载安装之后地球图标。

  2. 进入我们所在的本地服务器

    第一次和你见面,我就深深的爱上你-Xcode Bot_第1张图片

    我们可以进入本地自己电脑的服务器,还可以进入远程服务器电脑。看自己的需要了。

  3. 选择 Xcode服务

    第一次配置需要让我们配置一些参数和选择本地的 Xcode,我已经选择了,这里不贴图了。

    第一次和你见面,我就深深的爱上你-Xcode Bot_第2张图片
  4. 新建本地的 git 库。

    如果我们使用 SVN或者例如 Github类似的代码仓库也是可以的。我们新建一个本地的 GIT 仓库用户以后测试工程使用

    第一次和你见面,我就深深的爱上你-Xcode Bot_第3张图片

    我们点击加号进行新建一个储存的仓库

    第一次和你见面,我就深深的爱上你-Xcode Bot_第4张图片

    我们命名叫做 LocalGitRepo用来存储以后测试的工程代码。

  5. 查看我们本地 git 库连接地址

双击下面图所指我们新建的库

我们可以查看我们本地库所在的路径和 SSH 和 HTTPS 的连接。

第一次和你见面,我就深深的爱上你-Xcode Bot_第5张图片

配置 Xcode

  1. 我们打开 XcodePerferences->Accounts

    第一次和你见面,我就深深的爱上你-Xcode Bot_第6张图片

  2. 我们新建一个仓库帐号

    第一次和你见面,我就深深的爱上你-Xcode Bot_第7张图片

    地址我们选择我们刚才 https 地址,输入我们授权的账号 ,一般输入我们登录用户和密码就可以。

  3. 我们CheckOut 刚才的库到本地

    第一次和你见面,我就深深的爱上你-Xcode Bot_第8张图片
    第一次和你见面,我就深深的爱上你-Xcode Bot_第9张图片

    新建一个测试的工程

    1. 新建一个 XcodeBotExample工程

      第一次和你见面,我就深深的爱上你-Xcode Bot_第10张图片

      我们包含我们的测试工程,用户以后的测试。

      保存我们新建的工程到刚才我们在本地 Check Out 下来的库。

    2. 提交我们刚才的代码到远程仓库

      第一次和你见面,我就深深的爱上你-Xcode Bot_第11张图片
第一次和你见面,我就深深的爱上你-Xcode Bot_第12张图片
  1. 开启 Target 分享

    第一次和你见面,我就深深的爱上你-Xcode Bot_第13张图片
  2. 设置测试生成代码覆盖率统计

    第一次和你见面,我就深深的爱上你-Xcode Bot_第14张图片

新建自动化 Bot

  1. 创建一个新的 Bot

    第一次和你见面,我就深深的爱上你-Xcode Bot_第15张图片
  2. 选择一个服务

    第一次和你见面,我就深深的爱上你-Xcode Bot_第16张图片
    第一次和你见面,我就深深的爱上你-Xcode Bot_第17张图片
    1. 登录我们的 git 服务器

      第一次和你见面,我就深深的爱上你-Xcode Bot_第18张图片
    2. 开启代码覆盖率

      第一次和你见面,我就深深的爱上你-Xcode Bot_第19张图片
    3. 去掉自动测试选择提交才测试

      第一次和你见面,我就深深的爱上你-Xcode Bot_第20张图片
    4. 选择我们需要测试的设备和模拟器

      第一次和你见面,我就深深的爱上你-Xcode Bot_第21张图片

      因为之前一些设备删除导致选择全部抱错 暂时也没有找到解决的办法。

      之后一路 Next 完成设置。

    完成设置后会自动的自动化测试一次

    错误的原因是没有把全部文件上传到 git 导致远程仓库进行打包找不到对应的 Scheme

    编译完成我们可以看到打包的信息

    第一次和你见面,我就深深的爱上你-Xcode Bot_第22张图片

    包含中间的错误 警告 静态编译 测试 打包的 ipa 和 Archive 文件。

    查看代码覆盖率

第一次和你见面,我就深深的爱上你-Xcode Bot_第23张图片

我们看到 AppDelegate类只有33%的覆盖。

这几个方法代表测试用例没用测试过所以就没有覆盖。这样可以我们可以写测试用例帮助解决一些 bug

我们新建一个类 TestCoverage用来作为测试。

我们新建一个类方法判断让只有前十名才可以有奖励吃到苹果。

+ (BOOL)userCanEatAppleAtIndex:(NSInteger)index
+ (BOOL)userCanEatAppleAtIndex:(NSInteger)index {
    return index <= 10;
}

我们执行 Commond + U 进行测试。

当完成我们就有可以点击查看结果。

我们可以看到我们新建的类代码覆盖为0

因为我们写的方法还没进行测试。

- (void)testExample {
    NSInteger userTop = 1;
    [TestCoverage userCanEatAppleAtIndex:userTop];
}

我们执行这个方法左边执行测试的按钮进行测试。

我们看到当执行完测试之后我们的代码覆盖率已经100%。

因为我们的不管输入任何的值 判断的代码都会走。

我们现在更改代码为如下代码。

+ (BOOL)userCanEatAppleAtIndex:(NSInteger)index {
    if (index <= 10) {
        return YES;
    } else {
        return NO;
    }
}

现在的代码和之前的代码都是一样的只不过这个写的复杂。

我们再次的执行刚才的测试代码。

我们可以看到我们的代码覆盖率已经成为了50%。

我们点击类进去查看详情。

第一次和你见面,我就深深的爱上你-Xcode Bot_第24张图片

绿色的代码测试用例测试过 右侧数字是执行的次数。

下面返回 NO的一次也没有执行。

我们写一下 NO 的测试逻辑。

    NSInteger userTop1 = 11;
    [TestCoverage userCanEatAppleAtIndex:userTop1];

我们再次执行我们测试代码方法。

我们可以看到我们的类已经全部的代码覆盖了。是不是很棒。

我们再次升级我们的代码。假设全班56人,我们循环测试一下。

- (void)testExample {
    for (int i = 0; i < 56 ; i ++) {
        [TestCoverage userCanEatAppleAtIndex:i];
    }
}
第一次和你见面,我就深深的爱上你-Xcode Bot_第25张图片

我们查看执行方法可以看到我们成功执行了11次 失败执行了45次。

今天的文章就到此结束了,是不是还有问题没解决。可以私信我,如果我知道解决方法的话。

你可能感兴趣的:(第一次和你见面,我就深深的爱上你-Xcode Bot)