gaia的puppet测试自动化客户端

gaiatest-v1.3的Python项目详细描述


简介:GaiaTest是一个基于
[木偶](https://developer.mozilla.org/en-us/docs/Marionette)的Python包,它是专门为编写针对
[木偶](https://github.com/mozilla-b2g/Gaia)的测试而设计的。

iRefox构建](https://developer.mozilla.org/en-us/docs/mariotte/builds)
[成功连接](https://developer.mozilla.org/en-us/docs/mariotte/connecting-u-to-b2g)。


t



另一方面,如果您想修改gaia ui测试,请执行以下操作:


在运行
"python setup.py develop"之前,请考虑设置虚拟环境。这是完全可选的。


virtual env env-name
source env-name/bin/activate

p.py develop


risks
=


请访问
[本页](https://developer.mozilla.org/en-us/docs/gaia-u-test-runner)
了解并确认运行这些测试时所涉及的风险。
您必须修改testvars.json文件(请参阅下面的**测试变量**部分
),显示您对RIS的确认ks,运行测试。


对于完整的
用法详细信息,请运行"gcli--help",对于特定命令的帮助,请使用"gcli
<;command>;--help"。

如果mozillaguest
$gcli launchapp settings
```


运行测试
==


要使用gaia测试运行测试,您的命令行将根据您使用的设备有所不同。一般格式是:

gaiatest[选项]/path/to/test_foo.py


选项:

--emulator arm--homedir/path/to/emulator:使用这些选项
让木偶为您启动一个模拟器,在其中运行测试
--address<;host>;:<;port>;使用此选项在模拟器上运行测试
你已经手动启动了一个真正的设备,或者一个b2g
桌面构建。如果您使用了如下所述的端口转发,
您将指定--address localhost:2828
--testvars=(请参阅下面的测试变量部分)
--在测试之间重新启动目标实例。此选项将删除
/data/local/indexeddb和/data/b2g/mozilla文件夹,并将
设备还原到公共状态
--yocto在运行测试时收集功耗数据
(请参阅https://developer.mozilla.org/en-us/docs/mozilla/firefox-os/platform/automated-testing/gaia-ui-tests/gaia-ui-tests/gaiu-runests正在收集电力绘图数据)
--timeout<;time in milliseconds>;将默认超时值(页面加载超时为30s,搜索超时为
10s,脚本超时为10s)设置为公共指定值

启用OneTE。
EASI最有效的方法是获取一个夜间"eng"版本,比如
[这一个用于unagi](https://pvtbuilds.mozilla.org/pub/mozilla.org/b2g/nightly/mozilla-b2g18-unagi-eng/latest/)
(当前需要一个mozilla ldap登录)。将其闪存到您的设备。

您不应在设备上手动启用远程调试,因为
将有相互竞争的调试器。请参见
[bug 764913](https://bugzilla.mozilla.org/show_bug.cgi?id=764913)。

您可以通过运行以下命令来完成此操作:

adb forward tcp:2828 tcp:2828

或者,它可以作为
[android sdk]的一部分(http://developer.android.com/sdk/index.html)下载。

桌面版本
==br/>==br/>

您可以从
[此位置](http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest mozilla central)下载桌面客户端的最新版本,
,但请确保为您的操作系统下载适当的文件。

***linux(32位)**:b2g-[版本].multi.linux-i686.tar.bz2
**linux(64位)**:b2g-[版本].multi.linux-x86\u64.tar.bz2
**mac**:b2g-[版本].multi.mac64.dmg
**windows**:b2g-[版本].multi.win32.zip

下载后,需要将内容提取到本地折叠er.
$b2g\u home是指
文档其余部分的本地文件夹的位置。


如果在运行测试时指定了配置文件(推荐),则将使用
配置文件的克隆。这有助于确保所有测试都在干净的状态下运行。
但是,如果您还打算手动启动桌面构建并与之交互,我们建议您制作一个默认配置文件的副本,并将副本用于您的测试。默认配置文件的位置是$b2g \-home/gaia/profile。

/filename.json\
gaia/tests/python/gaia ui tests/gaiatest/tests/manifest.ini\

然后您应该开始看到测试正在运行。接下来的两部分分别提供了`--type`选项中使用的测试类型和`--testvars`选项的测试变量的详细信息。


多种类型,有些类型意味着其他类型,有些类型是互斥的-例如,测试不能同时是"在线"和"离线"
,但定义为"局域网"的测试是"在线"的。请注意,尽管有这些
规则,但对类型的检查没有错误,因此在分配
规则时必须小心。默认类型在清单文件的[default]部分中设置,并由include引用的清单文件继承。


这里是使用的类型列表,以及何时使用它们:

*b2g-这意味着测试是一个b2g(firefox os)测试。所有测试必须包括
此类型。
*天线-这些测试需要连接天线(耳机)。
*蓝牙-需要蓝牙。
*相机-这些测试需要使用相机。
*载波-需要带载波连接的活动SIM卡。
*LAN-这些测试需要本地连接(不是单元数据)(请参见下面的
注意)。
*脱机-特别是不需要联机连接。
*联机-需要某种联机连接(LAN或运营商)。
*QEMU-这些测试需要运行Firefox OS模拟器。
*SD卡-必须有存储设备。
*WiFi-这意味着WiFi连接是必需的。

嗯,这些测试不仅在移动设备上运行…我们还可以在具有以太网端口的单板计算机
[panda board s](https://en.wikipedia.org/wiki/panda_board)和共享主机连接的桌面构建上运行。因此,我们需要"lan"来指示不是cell
数据的连接。例如,在使用online/lan/carrier时,请查看
浏览器测试。


test variables
例如,在gaia ui tests中,这些
变量可以是您的私人登录凭据、电话号码或
wifi连接的详细信息。


在运行测试时,添加参数:
--testvars=(filename).json


变量:

`"carrier":{}(dict)`测试电话的载波信息。这包含SIM卡的电话号码、国家/地区和网络。

``
"运营商":{
"电话号码":",
"国家":",
"网络":"
}
````
`"IMEI":"(字符串)`测试电话的12位IMEI码。
`"远程电话号码":"(字符串)`A在测试期间,您的设备可以呼叫的电话号码
(请尽量不要成为麻烦!)。请在号码前加上"+"和
国际拨号代码。
`"WiFi":{}{(dict)`这是WiFi连接的设置。目前
这支持wpa/wep/etc。您可以通过执行以下操作添加wifi网络
(记住用您的网络
支持的值替换"keymanagement"和"wep):

````
"wifi":{
"ssid":"mynetwork",
"keymanagement":"wep",
"wep":"mypassword"
>
```````


>wpa-psk:
````
"wifi":{
"ssid":"MyNetwork"、
"KeyManagement":"wpa-psk"、
"psk":"MyPassword"
>
`````
`````````
`````````````
``````````





"psk"
"psk":"mypassword"
br/>
`"他们ail"{}(dict)`电子邮件测试使用的电子邮件登录信息。它可以包含不同类型的电子邮件帐户:


gmail:
```
"gmail":{
"name":",
"email":",
"password":"
}
`````

"email":",
````
"imap":{
"name":",
"email":",
"password":",
"imap_hostname":",
"imap_name":",
"imap_port":",
"smtp_hostname":",
"smtp_name":",
"smtp_port":"
}
`````
"activesync":{
"name":",
"email":",
"password":",
"active s"ync_hostname":",
"active_sync_username":"
}
````
`"settings":{}(dict)`覆盖gaia默认设置的自定义设置。
这些设置将在每次测试运行之前设置,但不是必需的。
````
"settings:{
"<;setting>;<;value>;
}"
````
_注意:在没有SIM卡或离线的情况下运行时,时区可能不会自动更新以匹配本地时区。在这种情况下,您可能需要使用testvars.json中的设置来强制时区与所需时区匹配,该设置将在测试设置期间进行设置:

```
"设置:{
"time.timezone":<;value>;,
"time.timezone.user selected":<;value>;
"
```


在访问
[风险页面](https://developer.mozilla.org/en-us/docs/gaia_test_runner)了解并确认风险后,不要忘记在testvars文件中确认风险在运行这些测试时涉及,否则将不会运行
测试。


测试数据先决条件
====


有时测试需要硬件上的数据,而这些数据在
测试设置期间无法设置。以下测试需要先设置数据,然后才能成功运行


"测试FTU"需要保存到SIM卡上的单个记录/联系人来测试
SIM联系人导入





https://developer.mozilla.org/en-us/docs/mariotte/mariotte_python_tests。


此外,gaatest还公开了一些用于管理gaia的锁屏和
应用程序管理器的api。请参见
https://github.com/mozilla-b2g/gaia/blob/master/tests/python/gaia test/gaia_test.py.

请遵循现有测试的流行风格。使用它们作为编写
测试的模板。
我们遵循[pep8](http://www.python.org/dev/peps/pep-0008/)进行格式化,
尽管我们对80个字符的行长度相当宽松。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Oracle将休眠为ISO 8601日期格式   当有线程时,swing计时器不会停止。睡在Java里面   如何使用swing在java中清空密码字段值(字符串)   如何在编辑文本字段上设置单词java(安卓)   单独类中的java OkHttp请求   java Tomcat配置文件/上下文xml似乎已经崩溃了。请确保它是可分析和有效的。有关详细信息,请参阅服务器日志   java在科尔多瓦的ActivityResult上传递   java如何在映射中保持插入顺序。工厂?   “DataOutputStream”和“ObjectOutputStream”之间的java差异   java从FTP文件列表中获取项目的时间戳   java如何在spring security中为每个人忽略一些资源/URL?   模板类嵌套时新的Java泛型类构造函数问题   java读取并查找文件大小为1GB的行   java如何使用字符串say“stop”停止整数格式的while循环   java是否可以在应用程序启动之间将JVM保留在内存中?   java Springboot出现“出现意外错误(类型=内部服务器错误,状态=500)”的问题