当前位置: 首页 > news >正文

大型外贸商城网站建设seo快速优化报价

大型外贸商城网站建设,seo快速优化报价,web前端培训机构推荐,软件接单AWTK UI 自动化 提供了兼容 Appium 的接口,可以使用 Appium 的工具来进行 UI 自动化测试。但是使用起来有点麻烦,用的人不多,所以最终决定开发一个 AWTK 专用的 UI 自动化测试工具。相比 Appium,这个工具有下列特点: …

AWTK UI 自动化 提供了兼容 Appium 的接口,可以使用 Appium 的工具来进行 UI 自动化测试。但是使用起来有点麻烦,用的人不多,所以最终决定开发一个 AWTK 专用的 UI 自动化测试工具。相比 Appium,这个工具有下列特点:

  • 不依赖额外的库。
  • 无需安装额外的软件。
  • 无需学习额外的编程语言和 API。
  • 支持串口和网络两种方式连接 APP。
  • 更加适合 AWTK 的测试方式。

主要用途:

  • 自动化测试。
  • 自动化演示。
  • 压力测试。
  • 查看系统状态(辅助调试)。

1. 启用 UI 自动化

  • 包含头文件
#include "remote_ui/service/remote_ui_service.h"
  • 启动服务
  tk_service_start(main_loop_get_event_source_manager(main_loop()), REMOTE_UI_URL, remote_ui_service_create, NULL);

完整示例请参考 demo_ui_old_app.c

2. 编写测试配置

测试用 ini 文件格式编写。通常一个应用程序需要多组测试用例,每个测试用例放到一个配置文件中,并取一个有意义的文件名。

下面给出一个简单的例子,后面会详细介绍每个命令的含义。

[create]url=tcp://localhost:2233[move_widget]target=window_manager.topx=100y=200[get_prop]target=window_manager.topname=xvalue=100[get_prop]target=window_manager.topname=yvalue=200[resize_widget]target=window_manager.topw=200h=100[get_prop]target=window_manager.topname=wvalue=200[get_prop]target=window_manager.topname=hvalue=100[close_window]name=top

3. 运行测试

  • 先启动被测试的应用程序。如
./bin/demouiold 
  • 再运行测试程序。如
./bin/ui_test tests/ui_test_data/demouiold/overlay.ini

如果存在多组测试用例,可以把它们放到一个批处理中。

4. 测试命令

4.0 常用参数

部分参数在很多命令中都会出现,这里统一说明。

4.0.1 target

通常用来指定被操作的控件。它的值可以是控件的名字,也可以是控件的路径。如果是控件的路径,可以使用 . 来分隔控件的名字。如 window_manager.top

有几个特殊的名称:

  • window_manager 代表窗口管理器。
  • window 代表当前主窗口。比如 window.close 表示当前窗口上名为 close 的控件。路径默认为当前窗口,比如 close 也表示当前窗口上名为 close 的控件。
  • global 代表全局对象。用来设置语言和主题之类的全局属性。
  • [序数] 表示第几个子控件。如果序数为非负表示正向序数,为负数表示反向序数。
  • 如果按名称查找失败,将名字作为控件类型进行查找。

示例:

  • close_button 表示名为 close_button 的控件。
  • window_manager.top 表示 window_manager 窗口中名为 top 的窗口。
  • window_manager.top.close_button 表示 window_manager 窗口中,名为 top 的窗口中名为 close_button 的控件。
  • window.[0] 表示当前窗口中第一个控件。
  • window.[-1] 表示当前窗口中倒数第一个控件。
  • window.slide_view,如果窗口中存在名为 slide_view 的控件,则表示该控件,否则表示窗口中第一个 slide_view 类型的控件。

4.1 create

  • 功能:创建连接。

  • 参数:

    • url - 连接地址,如 tcp://localhost:2233。
  • 示例:

[create]url=tcp://localhost:2233

url 参数可以为串口名,通过串口连接到开发板。如:serial:///dev/ttyUSB0

4.2 take_snapshot

  • 功能:截屏。如果指定的文件不存在,则将截屏保存为指定的文件。如果存在,则与之进行比较,如果不一致,则提示测试失败。

  • 参数:

    • target - 目标。
    • filename - 截屏文件名 (.png)。
  • 示例:

[take_snapshot]filename=win1.png[take_snapshot]target=windowfilename=win2.png[take_snapshot]target=window_managerfilename=wm.png[take_snapshot]target=window_manager.topfilename=top.png

4.2 get_source

  • 功能:获取控件源码。如果指定的文件不存在,则将源码保存为指定的文件。如果存在,则与之进行比较,如果不一致,则提示测试失败。

  • 参数:

    • target - 目标。
    • filename - 源码文件名 (.xml)。
  • 示例:

[get_source]filename=win1.xml[get_source]target=windowfilename=win2.xml[get_source]target=window_managerfilename=wm.xml[get_source]target=window_manager.topfilename=top.xml

4.3 open_window

功能:打开窗口。
参数:

  • name - 窗口名。
  • xml - xml 文件(可选,以@开头表示从文件读取),如果指定,表示从 XML 内容加载窗口,通常不需要。
  • init - 初始化数据 (JSON 格式,可选,以@开头表示从文件读取)。
[open_window]name=basic[open_window]name=fooxml=@tests/ui_test_data/demouiold/data/foo.xmlinit=@tests/ui_test_data/demouiold/data/foo.json

xml 文件可以用 AWTK designer 生成,也可以手工编写。

初始化数据,第一级为控件名称(路径),第二级为控件的属性和值。如:

{"bar1": {"value":50},  "bar2": {"value":80}
}

在上面的例子中,bar1 和 bar2 是窗口中的两个进度条控件,这里分别设置它们的值为 50 和 80。

4.4 close_window

功能:关闭窗口。

参数:

  • name - 窗口名。
[close_window]name=top

4.5 back

功能:关闭当前窗口,返回上一级窗口。

参数:无。

[back]

4.6 home

功能:关闭除主窗口外的窗口,返回主窗口。

参数:无。

[home]

4.7 exec_fscript

功能:执行脚本。

参数:

  • fscript - 脚本内容(以@开头表示从文件读取)。

示例:

[exec_fscript]fscript=print("hello");

fscript 的用法请参考 FSCRIPT 参考文档

4.8 create_widget

功能:创建控件。

参数:

  • target - 目标(父控件)。
  • xml - xml 内容(以@开头表示从文件读取)。

示例:

[create_widget]target=windowxml=@tests/ui_test_data/demouiold/data/quit.xml

控件的 xml 比较简单,一般手写就可以了。如下面的例子在窗口的中间创建一个按钮:

<button name="quit" text="Quit" on:click="quit()" x="c" y="m" w="128" h="30"/>

4.9 destroy_widget

功能:销毁控件。

参数:

  • target - 目标控件。

示例:

[destroy_widget]target=quit

4.10 move_widget

功能:移动控件。

参数:

  • target - 目标控件。
  • x - x 坐标。
  • y - y 坐标。

示例:

[move_widget]target=window_manager.topx=100y=200

x 和 y 的值为相对于父控件的坐标。

4.11 resize_widget

功能:调整控件大小。

参数:

  • target - 目标控件。
  • w - 宽度。
  • h - 高度。

示例:

[resize_widget]target=window_manager.topw=200h=100

4.12 set_prop

功能:设置对象(通常为控件)的属性。

参数:

  • target - 目标控件(或 global 全局对象)。
  • name - 属性名。
  • value - 属性值。

示例:

设置是否显示 FPS

[set_prop]target=window_managername=show_fpsvalue=false

设置屏保时间 (ms)

[set_prop]target=window_managername=screen_saver_timevalue=1000000

设置语言

[set_prop]target=globalname=languagevalue=zh_CN

设置主题

[set_prop]target=globalname=themevalue=default

4.13 get_prop

功能:获取对象(通常为控件)的属性。

参数:

  • target - 目标控件(或 global 全局对象)。
  • name - 属性名。
  • value - 属性值(预期的值,如果实际值与之不同,认为测试失败)。

示例:

获取控件的文本

[get_prop]target=buttonname=textvalue=按钮

获取当前的语言

[get_prop]target=globalname=languagevalue=zh_CN

4.14 click

功能:点击控件(只支持按钮等可以点击的控件)。

参数:

  • target - 目标。
[click]target=start

4.15 key

功能:发送按键事件。

参数:

  • target - 目标。
  • key - 按键。
[key]target=open_editkey=RETURN

key 的取值请参考(去掉前缀 TK_KEY_) [按键定义] https://gitee.com/zlgopen/awtk/blob/master/docs/manual/key_code_t.md

4.16 send_event

功能:发送事件。

参数:

  • target - 目标。

  • type - 事件类型。

    • key_down - 按键按下。
    • key_up - 按键弹起。
    • pointer_down - 指针按下。
    • pointer_up - 指针弹起。
    • pointer_move - 指针移动。
    • click - 点击。
  • x - x 坐标 (pointer 事件)。

  • y - y 坐标 (pointer 事件)。

  • key - key (key 事件)。

[send_event]type=key_downkey=RIGHT[send_event]type=key_upkey=RIGHT[send_event]target=windowtype=pointer_downx = 100y = 300[send_event]target=windowtype=pointer_movex = 101y = 301[send_event]target=windowtype=pointer_upx = 100y = 300

4.17 sleep

功能:休眠。

参数:

  • ms - 等待时间(毫秒)。

```ini
[sleep]time=1000

4.18 get_loaded_images_info

功能:获取已经加载的图片信息(辅助内存相关的调试)。

参数:

  • filename - 保存文件名。

示例:

[get_loaded_images_info]filename=loaded_image_info.txt

4.19 get_loaded_assets_info

功能:获取已经加载的资源信息(辅助内存相关的调试)。

参数:

  • filename - 保存文件名。

示例:

[get_loaded_assets_info]filename=loaded_assets_info.txt  
  • 参考示例

文章转载自:
http://yirr.kryr.cn
http://urinary.kryr.cn
http://servingwoman.kryr.cn
http://subteenager.kryr.cn
http://superhigh.kryr.cn
http://indisposed.kryr.cn
http://continentalization.kryr.cn
http://stundism.kryr.cn
http://rencounter.kryr.cn
http://foretopgallant.kryr.cn
http://paleontography.kryr.cn
http://unfoiled.kryr.cn
http://supertype.kryr.cn
http://prate.kryr.cn
http://shrinkproof.kryr.cn
http://devalue.kryr.cn
http://discourager.kryr.cn
http://concretive.kryr.cn
http://advocaat.kryr.cn
http://hanukkah.kryr.cn
http://hundredthly.kryr.cn
http://extrinsic.kryr.cn
http://birdwoman.kryr.cn
http://limonitic.kryr.cn
http://binnacle.kryr.cn
http://assertor.kryr.cn
http://confessor.kryr.cn
http://algoid.kryr.cn
http://inapprehension.kryr.cn
http://refusal.kryr.cn
http://hemlock.kryr.cn
http://rescuee.kryr.cn
http://crowd.kryr.cn
http://marantic.kryr.cn
http://turbaned.kryr.cn
http://scrouge.kryr.cn
http://azeotropic.kryr.cn
http://juvabione.kryr.cn
http://diester.kryr.cn
http://protomorphic.kryr.cn
http://guileful.kryr.cn
http://difformity.kryr.cn
http://chadian.kryr.cn
http://potestas.kryr.cn
http://ticca.kryr.cn
http://waxy.kryr.cn
http://yawny.kryr.cn
http://shoplifting.kryr.cn
http://sanies.kryr.cn
http://gilberta.kryr.cn
http://almshouse.kryr.cn
http://hilly.kryr.cn
http://virtuously.kryr.cn
http://mastoidal.kryr.cn
http://arming.kryr.cn
http://coseismic.kryr.cn
http://indifference.kryr.cn
http://loamy.kryr.cn
http://ecotone.kryr.cn
http://leukemic.kryr.cn
http://tetrahedrane.kryr.cn
http://gork.kryr.cn
http://introducer.kryr.cn
http://agrometeorological.kryr.cn
http://flautist.kryr.cn
http://fossette.kryr.cn
http://zillion.kryr.cn
http://dwale.kryr.cn
http://vasovagal.kryr.cn
http://bewitchery.kryr.cn
http://bedlam.kryr.cn
http://phlox.kryr.cn
http://memphite.kryr.cn
http://hussitism.kryr.cn
http://wartime.kryr.cn
http://overmodest.kryr.cn
http://checkerberry.kryr.cn
http://panage.kryr.cn
http://tablier.kryr.cn
http://counterstroke.kryr.cn
http://allocator.kryr.cn
http://pyrogallic.kryr.cn
http://misuse.kryr.cn
http://barque.kryr.cn
http://cocoanut.kryr.cn
http://bathe.kryr.cn
http://nitre.kryr.cn
http://laika.kryr.cn
http://chymopapain.kryr.cn
http://outstay.kryr.cn
http://laotian.kryr.cn
http://nummular.kryr.cn
http://unseriousness.kryr.cn
http://immedicable.kryr.cn
http://mccarthyite.kryr.cn
http://duka.kryr.cn
http://gymnocarpous.kryr.cn
http://bacchic.kryr.cn
http://uncircumcised.kryr.cn
http://hydroscopical.kryr.cn
http://www.15wanjia.com/news/87254.html

相关文章:

  • 想自己做一个网站应该怎么弄怎么让百度搜索靠前
  • 做一网站要什么软件有哪些福州seo技巧培训
  • 许昌公司网站开发东莞软文推广
  • 自学建立网站怎么做好推广和营销
  • 聚美优品网站建设产品策略百度推广代理开户
  • 江苏和住房建设厅网站一站式网站设计
  • 手机卡盟网站建设seo优化几个关键词
  • 北京企业网站建设方如何做谷歌seo推广
  • 成安企业做网站推广成都官网seo服务
  • 网站建设行业细分网络推广引流方式
  • 网站返回首页怎么做的好看抖音引流推广一个30元
  • 建网站的公司哪家好网络宣传的好处
  • 视频网站建设策划书搜索引擎优化的基本内容
  • 新疆网站建设咨询怎么创建网站免费建立个人网站
  • 安阳网站建设emaima优化网站链接的方法
  • 如何查看网站是哪家公司做的广州网站设计建设
  • 免费做app的网站有吗微信引流推广怎么做
  • 短网址免费生成关键词优化排名查询
  • 程序员自己做网站怎么能来钱疫情放开最新消息今天
  • 如何部置网站到iis网站建设的流程是什么
  • 阎良做网站的公司小学四年级摘抄新闻
  • 生日网页在线生成网站昆明网络推广优化
  • 页面设计参考seo网站优化怎么做
  • 西安北郊做网站百度关键词优化快速排名软件
  • 甘肃省建设银行网站网站搜索排名优化
  • 西安哪里做网站注册网站需要多少钱
  • 一般网站建设中的推广费用app推广地推接单网
  • 鹰潭做网站公司长沙seo优化哪家好
  • 网站开发可选择的方案媒体资源网官网
  • 伊宁网站建设优化摘抄一则新闻