当前位置: 首页 > 工具软件 > FAutoTest > 使用案例 >

腾讯开源的FAutoTest框架试用

越季萌
2023-12-01

腾讯开源的FAutoTest主要服务于微信的公众号、小程序的UI自动化测试,一方面支持微信的公众号H5页面和小程序的常见控件识别、操作和获取页面内容,另一方面支持基础的性能测试监控和android native页面的组合操作。它具有API使用简单、调试定位方便和功能扩展性强的优点。FAutoTest框架是一个同步阻塞的模型,采用分层设计的原则,共有用户交互层、操作解析层和引擎层。

User Interface(用户交互层):提供给用户所有的界面操作 API(H5界面及小程序界面),只需要关注自身业务逻辑流程(手工用例流程转换成自动化流程)。

PageOperator(操作解析层):主要用于接收和解析用户命令后传递给 Engine 层。

Engine( H5&小程序引擎层):将用户命令传输到手机,并返回结果信息。封装 WebSocket 和单线程池,通过WebSocket Debug URL 和浏览器内核建立链接,发送 Json 格式的协议到手机端进行用户指定的操作。

本文以某公众号的功德捐赠为业务场景,研究FAutoTest在微信的公众号H5页面上的运用。

第一步,需要在Android手机端安装微信和TBS内核,然后在PC端安装Chrome浏览器和使用chrome:inspect去获取页面Xpath;

第二步,把Android手机和PC电脑连接起来,Android手机设置调试模式;

第三步,编写测试脚本,首先打开微信App,跳到公众号的页面,然后定位到功德捐赠功能项,接着定位到捐款说明字段,并输入字段信息。

经过FAutoTest的使用和体验,与已有工具Appium的比较如下:

功能

Appium

FAutoTest

比较

微信的公众号

H5页面UI自动化

支持

支持

页面发生切换时,Appium控件识别不稳定,FAutoTest稳定性强。

微信小程序

UI自动化

不支持

支持

 

兼容性

较差

较高

Appium:Chromedriver匹配Android和Chrome内核版本

FAutoTest:依赖Chrome debugging 协议,版本依赖低

脚本编写

支持多种编程语言

暂时支持Python2

 

# -*- coding: utf-8 -*-
from fastAutoTest.core.h5.h5Engine import H5Driver
import os
import time
from uiautomator import Device
'''
  打开Android微信,利用ADB命令
'''
def openWechat():
    os.system('adb shell am force-stop com.tencent.mm')  # 杀掉微信
    os.system('adb shell am start com.tencent.mm/.ui.LauncherUI')  # 启动微信
    time.sleep(5)
'''
   H5页面操作
'''
def pageOperator(url,h5Driver):
    h5Driver.navigateToPage(url)
    #print("手机屏幕高度%s,手机屏幕宽带%s" % (h5Driver.getWindowHeight(),h5Driver.getWindowWidth()))
    #print("H5页面CPU %s,内存信息%s" % (h5Driver.getCPUInfo(),h5Driver.getMemoryInfo()))
    #while not h5Driver.isElementExist('.//*[text()="建寺功德"]'):
    time.sleep(10)
    h5Driver.clickFirstElementByText('建寺功德')
    h5Driver.wait(5)
    h5Driver.textElementByXpath('.//input[@class="mugeda_render_object mugine_class_495 mugine_class_496"]','TestForText')
    #h5Driver.returnLastPage()

def main_work():
    openWechat()
    d = Device()
    d(text='发现').click()
    d(text='购物').click()
    h5Driver = H5Driver()
    h5Driver.initDriver()
    url = 'https://ecsp.icbc.com.cn/wechat_official_account/payWX/payIndex.html?code=0819ZC1b0GIlCv1FD11b0xEQ1b09ZC1V&parabcode=DZYH&openId=oWX3XjgdG3SWaFTos5oV0h5tDZ5c&k=ECSP&wechatOfficialAcct=wx1ec46f7d85a521b1&parabcode=DZYH&skinType=standard&code=0819ZC1b0GIlCv1FD11b0xEQ1b09ZC1V&state=icbc&token=oWX3XjgdG3SWaFTos5oV0h5tDZ5c'
    pageOperator(url,h5Driver)
    h5Driver.close()

if __name__ == '__main__':
    main_work()

参考:

https://github.com/Tencent/FAutoTest/

转载于:https://my.oschina.net/sillyjims/blog/2967150

 类似资料: