QTA自动化测试

Apache2.0
Python
windows,Linux,Mac
匿名 · January 07, 2019 · 10225 次阅读 · 33 条评论

QTA 是一个跨平台的测试自动化工具,适用于后台、原生或混合型客户端应用的测试。它支持 Android、iOS、Web、后台、云服务和 Windows 端的 UI 自动化测试,是腾讯内部使用最为广泛的自动化测试框架。
QTA 目前已开源的有 QT4A、QT4i、QT4W、QTAF 等组件。
详情:https://github.com/Tencent/QT4A/blob/master/LICENSE.TXT
QTAF(QTA Framework):https://github.com/Tencent/QTAF
使用文档:https://qta-testbase.readthedocs.io/zh/latest/
https://qta-tuia.readthedocs.io/zh/latest/index.html
QT4A(Quick Test for Android):https://github.com/Tencent/QT4a
使用文档:https://qt4a.readthedocs.io/zh_CN/latest/index.html
QT4i(Quick Test for iOS):https://github.com/Tencent/QT4i
使用文档:https://qt4i.readthedocs.io/zh_CN/latest/
QT4W(Web 自动化):
使用文档:https://qt4w.readthedocs.io/zh_CN/latest/index.html

基本原理
QTAF (QTA Framework) 是 QTA 的基础框架,包括以下模块:testbase、tuia;
QT4A:
通过向被测 Android 应用进程中注入测试桩,以获取进程中的控件树信息,以及相关的类、对象的属性和方法。
测试桩是使用 Java 语言开发的 jar 包(dex),它主要利用 Java 的反射功能,获取到进程中类和对象的实例。
测试桩中会创建一个 Socket 服务端,客户端连接后可以获取到控件的 ID、坐标、文本、可见性等信息,通过这些信息,用户可以对控件进行查找、获取文本、设置文本、点击、滑动等操作。
除此之外,测试桩还提供了反射获取对象属性、调用函数等能力,这使得 QT4A 拥有了超越 UI 测试的能力。使用者可以利用这些功能来做更多的事情。
QT4i:
是基于 JSON-RPC 和 QTAF 实现的 C/S 架构的 iOS UI 自动化测试框架,整体架构如下所示。

自上而下依次是 API 层、驱动层和设备层。
QT4W:
QT4W 可用于 Web 应用程序或嵌入式页面自动化,它们不能独立使用,需要与其他本机层自动化框架结合使用。

本页面的文字允许在知识共享 署名 - 相同方式共享 3.0 协议和 GNU 自由文档许可证下修改和再使用。

评论列表
猫星人 发表于 January 28, 2019

有人开箱用了吗

Benjamin 发表于 January 08, 2019

目测大水逼一个,,,

simple 发表于 January 10, 2019

我看到了很完善的帮助手册,教程。但是 QTA 的源代码地址在哪里?github 上都是 demo 工程

匿名 发表于 January 10, 2019

@simple 你好,QTA 是我们的一个总称,它是由 QT4A、QT4i、QTAF 等组件构成的,QT4A 是 Android 自动化框架,源代码是https://github.com/Tencent/QT4aQT4i 是 IOS 自动化框架,源代码是 https://github.com/Tencent/QT4iQTAF 是测试自动化框架,源代码是 https://github.com/Tencent/QTAF。

匿名 发表于 January 10, 2019

@simple 你好,QTA 是我们的一个总称,它是由 QT4A、QT4i、QTAF 等组件构成的,QT4A 是 Android 自动化框架,源代码是https://github.com/Tencent/QT4aQT4i 是 IOS 自动化框架,源代码是 https://github.com/Tencent/QT4iQTAF 是测试自动化框架,源代码是 https://github.com/Tencent/QTAF。

匿名 发表于 January 10, 2019

@simple 你好,QTA 是我们的一个总称,它是由 QT4A、QT4i、QTAF 等组件构成的,QT4A 是 Android 自动化框架,源代码是https://github.com/Tencent/QT4a
QT4i 是 IOS 自动化框架,源代码是https://github.com/Tencent/QT4i
QTAF 是测试自动化框架,源代码是https://github.com/Tencent/QTAF

匿名 发表于 January 10, 2019

@Github-Benjamin 你好,QTA 是我们的一个总称,它是由 QT4A、QT4i、QTAF 等组件构成的。
QT4A 是 Android 自动化框架,源代码是https://github.com/Tencent/QT4a
QT4i 是 IOS 自动化框架,源代码是https://github.com/Tencent/QT4i
QTAF 是测试自动化框架,源代码是https://github.com/Tencent/QTAF
欢迎使用,有任何问题都可以联系我们。

simple 发表于 January 10, 2019

收到,看了一下手册非常的详细,感谢分享!

simple 发表于 January 10, 2019

专栏也同步开通,欢迎写系列文章介绍 QTA 框架

qdj0226 发表于 January 21, 2019

请问支持 python3 吗

匿名 发表于 January 21, 2019

@qdj0226 已经支持了,有什么疑问也可以加入我们的 QQ 群 432699528 交流。

山姆大叔 发表于 February 02, 2019

安装 qt4i 时出错:
SWIG/_m2crypto_wrap.c:3557:10: fatal error: 'openssl/err.h' file not found
#include
~~~~~~~~~~~~~~
1 warning and 1 error generated.
error: command 'gcc' failed with exit status 1

----------------------------------------
Command "/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 -u -c "import setuptools, tokenize;file='/private/var/folders/4y/zl5y89n90rj6g6k443_0p8dclvycqs/T/pip-install-znv_nwue/M2Crypto/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /private/var/folders/4y/zl5y89n90rj6g6k443_0p8dclvycqs/T/pip-record-4hstzrn4/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /private/var/folders/4y/zl5y89n90rj6g6k443_0p8dclvycqs/T/pip-install-znv_nwue/M2Crypto/
请问楼主是什么原因?

匿名 发表于 February 13, 2019

@wxlsh114 因为 M2Crypto 库编译安装时,依赖于系统 C 环境的路径和版本不匹配导致的,可以按照《M2crypto 官网帮助文档》(https://gitlab.com/m2crypto/m2crypto/blob/master/INSTALL.rstQQ 群(432699528)或在 github 上提 issue,我们对应组件的同事会详细为您解答的。)解决这个问题。如果还有疑问,欢迎加入我们的

匿名 发表于 February 13, 2019

@wxlsh114 因为 M2Crypto 库编译安装时,依赖于系统 C 环境的路径和版本不匹配导致的,可以按照《M2crypto 官网帮助文档》(https://gitlab.com/m2crypto/m2crypto/blob/master/INSTALL.rst
解决这个问题。
如果还有疑问,欢迎加入我们的 QQ 群 432699528 或在 github 上提 issue,我们的各组件对应的同事会详细为您解答的。

发表于 February 19, 2019

相见恨晚,准备落地使用。

山姆大叔 发表于 February 22, 2019

@qtateam 按照您的方法,成功地安装好了 qt4i, 谢谢!

liveonnoevil 发表于 May 14, 2019

@QTA自动化测试 QTC 什么时候能上线呢?

匿名 发表于 May 16, 2019

@liveonnoevil 正在排期开源中,预计下半年开源。

疯的蜗牛 发表于 July 11, 2019

为什么我已经安装了 qt4i pycharm 还是提示没有这个包

1377093782 发表于 July 22, 2019

我在使用 qt4a-manage repack-apk -p 安装 debug 包或者 realease 包的时候 都遇到了如下错误 使用 adb install 命令安装 可以正常安装 希望帮忙找下原因

qt4a-manage repack-apk -p H:\python\qt4a\QT4ADemoProj-master\huikeyuntestproj\app\hky_v1.0.1_huawei_release.apk
Repacking apk H:\python\qt4a\QT4ADemoProj-master\huikeyuntestproj\app\hky_v1.0.1_huawei_release.apk...
Traceback (most recent call last):
File "H:\dev\python\Scripts\qt4a-manage-script.py", line 11, in
load_entry_point('qt4a==2.2.27', 'console_scripts', 'qt4a-manage')()
File "h:\dev\python\lib\site-packages\qt4a\management.py", line 140, in qt4a_manage_main
args.func(args)
File "h:\dev\python\lib\site-packages\qt4a\management.py", line 114, in repack_apk
outpath = qt4a_repack_apk(args.path, args.debuggable)
File "h:\dev\python\lib\site-packages\qt4a\management.py", line 109, in qt4a_repack_apk
debuggable
File "h:\dev\python\lib\site-packages\qt4a\apktool\repack.py", line 148, in repack_apk
manifest = AndroidManifest(apk_file)
File "h:\dev\python\lib\site-packages\qt4a\apktool\manifest.py", line 33, in init
self.dom = self.get_dom()
File "h:\dev\python\lib\site-packages\qt4a\apktool\manifest.py", line 40, in get_dom
axf = AXMLFile(fp)
File "h:\dev\python\lib\site-packages\qt4a\apktool\axml.py", line 254, in __init
_
super(ResChunkHeader, self).init(path_or_fp)
File "h:\dev\python\lib\site-packages\qt4a\apktool\header.py", line 72, in init
if self._fp: self.parse()
File "h:\dev\python\lib\site-packages\qt4a\apktool\axml.py", line 727, in parse
raise NotImplementedError('Unsupported type=0x%x header_size=%d chunk_size=%d' % (chunk_header.type, chunk_header.head_size, chunk_header.size))
NotImplementedError: Unsupported type=0x100 header_size=16 chunk_size=24

yang0009 发表于 July 23, 2019

'qt4a-manage' 不是内部或外部命令,也不是可运行的程序
或批处理文件
请问你们在安装测试桩的时候遇到过这个问题吗?我的库里面也没有'qt4a-manage‘,只有’qta-manage‘但是使用''qta-manage install-driver'提示 “invalid subcommand "install-driver"”

匿名 发表于 September 29, 2019

在安装 qt4c 的时候报错 pip install https://codeload.github.com/qtacore/QT4C/zip/master

ERROR: Command errored out with exit status 1:
command: 'c:\users\v_vyhwang\appdata\local\programs\python\python37\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\V_VYHW~1\AppData\Local\Temp\pip-req-build-mh_czv_s\setup.py'"'"'; file='"'"'C:\Users\V_VYHW~1\AppData\Local\Temp\pip-req-build-mh_czv_s\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-info
cwd: C:\Users\V_VYHW~1\AppData\Local\Temp\pip-req-build-mh_czv_s\
Complete output (7 lines):
Traceback (most recent call last):
File "", line 1, in
File "C:\Users\V_VYHW~1\AppData\Local\Temp\pip-req-build-mh_czv_s\setup.py", line 54, in
long_description=get_description(),
File "C:\Users\V_VYHW~1\AppData\Local\Temp\pip-req-build-mh_czv_s\setup.py", line 42, in get_description
return fh.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xac in position 13: illegal multibyte sequence
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

请问什么情况

yybingyybing 发表于 October 22, 2019

@Originator2019 windows 上 py3 安装 qt4c 的时候会有这个错误,qt4c 不支持 py3,你得用 py2 安装

frh16 发表于 November 25, 2019

@colorhuang 请问 QT4C 开源了吗

糯⑧ 发表于 December 28, 2019

Windows 端的什么时候开源?

发表于 May 14, 2020

有后台管理页面吗?

TedZhu 发表于 June 24, 2020

哇~爸爸爱我

Airtest新手 发表于 July 30, 2020

这个项目还在维护吗?

匿名 发表于 September 09, 2020

有人维护吗?QQ 群加不进去,没有人审批
QT4C 的文档上说封装了 4 种 WebView,但是 python 库里只有 2 种。。。如何获取全的

meetzhang269 发表于 October 04, 2020

qt4s 什么时候开源啊?

匿名 发表于 January 14, 2021

@simple 我看到了很完善的帮助手册,教程 请问在哪里???

匿名 发表于 January 14, 2021

@colorhuang 请问什么时候出视频教程

金玉满堂 发表于 May 24, 2021

QT4A 怎么定位第三方的应用中的元素呢。比如要的 app 中有调用系统相机的功能,相机中的拍照和确定按钮怎么定位呢?有人做过吗