SoloPi SoloPi 兼容 Appium、Macaca 两大测试框架

Cathor(茅舍) · 2020年02月28日 · 最后由 Cathor(茅舍) 回复于 2020年05月19日 · 5466 次阅读

| 背景

自 SoloPi 上线已有半载,收到了一些用户的正向反馈,也给广大测试同学带来一定的效率提升的,和我们的初衷 “为业界带来美而小的工具” 相吻合。同时也收到一些建议,例如 SoloPi 还不支持 CI。经过分析,多数公司 CI 都依赖与主流测试框架实现,SoloPi 虽然用例录制体验非常好,但与主流测试框架不兼容,如果能让 SoloPi 与主流测试框架兼容,那该问题迎刃而解了。

|「用例转换」全新功能介绍

为了让 SoloPi 与主流测试框架兼容,用例兼容是关键,本期我们添加了用例转换功能。
SoloPi 用例与常规用例有所不同,它会将录制时控件的全部信息都保存下来,在回放时综合进行匹配,而一般的自动化用例往往只会使用其中一种信息进行匹配。为了更好地适应用户需求,转化脚本支持为每一个步骤配置查找的条件,方便用户选择最合适的方式执行。
目前,SoloPi 转化脚本提供了 Appium、Macaca 两种语言的转换。你也可以根据自己的需要,参照后文代码解析部分,实现自己的转化脚本。

|「用例转换」使用指南

  1. 执行入口

    python3 handler.py
    
  2. 输入 SoloPi 脚本地址

  3. 选择转化类型(目前支持 Appium 和 Macaca)

  4. 选择输出目录

  5. 每一步单独选择查找方式

  6. 导出完成,可以在对应目录查看导出的用例脚本,导出的脚本文件会被命名为 main.xxx 。

| 扩展实现

SoloPi 用例核心转化逻辑在 exporter module 下,用户可以扩展 BaseExporter 类,来实现自己的转换器

class BaseExporter(object):
    """
    Export SoloPi case to file
    """
    @staticmethod
    @abstractmethod
    def get_name() -> str:
        """
        Get name for this exporter
        """
        pass
    @abstractmethod
    def get_file_extension(self) -> str:
        """
        Get File Extension for this type
        :return:
        """
        pass
    def export_head(self, case_info: CaseInfo) -> str:
        """
        Export file head, you can export some universal method in this part
        """
        return ""
    @abstractmethod
    def export_step(self, step: Step, index: int, case_info: CaseInfo) -> str:
        """
        Export every step
        """
        pass
    def export_tail(self, case_info: CaseInfo) -> str:
        """
        Export file tail, for driver stop
        """
        return ""

其中各方法含义如下
get_name: 获取该导出器名称
get_file_extension: 获取导出文件的扩展名
export_head:获取导出文件的前缀文本
export_step:获取单步骤导出的文本
export_tail:获取导出文件的后缀文本

具体实现可以见 appium.py 与 macaca.py

立即体验 SoloPi 最新功能
https://github.com/soloPi/SoloPi-Convertor

体验 SoloPi 完整功能
https://github.com/alipay/SoloPi

| 问题反馈

欢迎大家在日常的回归测试、兼容性测试以及性能测试过程中试用 SoloPi 工具,过程中如有任何问题和意见,可以在 github 上通过 Issue 进行反馈,也可加入 SoloPi 开源交流群参与讨论。

共收到 9 条回复 时间 点赞

等了好久,终于来了

lazyBoy 回复

抱歉让你久等啦,欢迎体验,有什么问题可以在这里,或者是 issue 里沟通

小白一个 可以简单通俗的说下什么是 CI 吗

请问下 SoloPi 是否支持 windows 下的 ios 自动化呢

IAmTester 回复

持续集成,比如你日常的自动化回归任务。

请问一下:1.转换后的 appium 用例适配各种安卓手机么,能否在云测系统上面跑通(是否需要适配做一些修改)? 2、 转换的 appium 用例是否支持 iOS ?

00 回复
  1. 转换后的 appium 脚本由于只保留单一查找形式,可能会在不同的设备上遇到兼容性问题,可能需要用户进行一定量的修改
  2. 目前用例是基于 Android 进行录制的,除了文字、图像信息外,其他类型的控件信息可能并不适用于 iOS 执行,也需要用户进行一些调整。
仅楼主可见
00 回复

1.使用的是 Appium 转换吗?如果方便的话,可以在 SoloPi 体验群联系茅舍,提供一下原始用例。
2.可以在转换后的脚本上进行二次编辑,如果希望能一次输出适配两端的脚本,可以考虑在转换工具上进行改造,针对 ios 与 android 分别设置查找条件,欢迎提 PR。
3.由于不同云测平台的用例识别方式可能存在差异,需要用户根据云测对测试用例的格式要求进行手动调整。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册