gaia的puppet测试自动化客户端
gaiatest-v2.0的Python项目详细描述
简介
==
[木偶](https://developer.mozilla.org/en-us/docs/mariotte)的python包,它专门为编写针对
[gaia]的测试而设计(https://github.com/mozilla-b2g/gaia)。
=============
您需要一个
[支持木偶的Firefox构建](https://developer.mozilla.org/en-us/docs/mariotte/builds)
[成功连接到](https://developer.mozilla.org/en-us/docs/mariotte/connecting_to_b2g)。
安装
只想在不进一步开发gaia ui测试的情况下运行测试:
easy_install gaiatest
另一方面,如果您想修改gaia ui测试,请执行以下操作:
在运行
"python setup.py develop"之前,请考虑设置虚拟环境。这是完全可选的。
virtual env env-name
source env-name/bin/activate
aia/tests/python/gaia ui tests
python setup.py develop
json文件(请参阅下面的**测试变量**部分
),显示您对风险的确认,以运行测试。
命令行界面
===
提供了一个有用的命令行工具,用于与gaia交互。对于完整的
用法详细信息,请运行"gcli--help",对于特定命令的帮助,请使用"gcli
<;command>;--help"。
setsetting screen.brightness 1
$gcli connectwifi 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文件夹,并将
设备还原到公共状态
--timeout<;time in millishes>;以将所有gaatest和mariotte的超时值设置为指定值。如果没有这个设置,gaiatest将尝试检测b2g实例,并为搜索、页面和脚本超时设置安全超时。
要做到这一点,就需要获取一个夜间的"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`选项的测试变量的详细信息。
多种类型,有些类型意味着其他类型,有些类型是互斥的-例如,测试不能同时是"在线"和"离线"
,但定义为"局域网"的测试是"在线"的。请注意,尽管有这些
规则,但对类型的检查没有错误,因此在分配
规则时必须小心。默认类型在清单文件的[默认]部分中设置,并由包含引用的清单文件继承。
这里是使用的类型列表,以及何时使用它们:
*天线-这些测试需要连接天线(耳机)。
*b2g-this me me测试是一个b2g(firefox os)测试。所有测试必须包括
此类型。
*蓝牙-需要蓝牙可用。
*摄像头-这些测试需要使用摄像头。
*运营商-需要具有运营商连接的活动SIM卡。
*闪存-这些测试需要使用闪存。
*LAN-本地连接这些测试需要操作(不是单元数据)(请参见下面的
注意)。
*脱机-特别是不需要联机连接。
*联机-需要某种联机连接(LAN或运营商)。
*QEMU-这些测试需要运行Firefox OS模拟器。
*SDCard-存储数据设备必须存在。
*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卡的电话号码、国家和网络。
``json
"运营商":{
"电话号码":",
"国家":",
"网络":"
}
````
`"IMEI":"(字符串)`测试电话的12位IMEI码。
`"远程电话号码":"(字符串)`您的设备在T期间可以拨打的电话号码
"他考试(尽量不要惹人讨厌!)。请在号码前加上"+"和
国际拨号代码。
`"WiFi":{}{(dict)`这是WiFi连接的设置。目前,wpa/wep/etc支持wpa/wep/etc支持wpa/wep/etc支持wpa/wep/etc支持wpa-wifi网络,可以通过以下步骤添加wifi网络:
(记住用网络支持的值替换"keymanagement"和"wep":
``json
"wififi":{
"ssid":"mynetwork"、
"keymanagemanage":"wep"、
"wep":"mypassword"
``json
"json
"wpa-psk:西ifi"{
"ssid":"mynetwork",
"keymanagement":"wpa-psk",
"psk":"mypassword"
}
`````
注意:由于[bug 775499](http://bugzil.la/775499),通过
wpa-eap的wifi连接此时无法使用。
`"email":{}(dict)`电子邮件测试使用的电子邮件登录信息。它可以
包含不同类型的电子邮件帐户:
gmail:
``json
"gmail":{
"name":",
"email":",
"password":"
<
<
``` `
"email"或不同的电子邮件协议:
``json
"imap":{
"imap":"{
"email":",
"password":",
"imap-imap-uphostname":",
"imap-imap-imap-hostname":",
"gmail imap_name":",
"IMAP网络端口":",
"smtp网络主机名":",
"smtp网络名称":",
"smtp网络端口":"
"或:
`` `
` ` ` ` ` `‘json
"active sync":{
"name":",
"电子邮件":",
"电子邮件":",
"密码":",
"主动同步网络主机名":",
"主动同步网络用户名":",
<
<<
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `{}(dict)`覆盖gai的自定义设置默认设置。
这些设置将在每次测试运行前设置,但不是必需的。
``json
"设置":{
"<;setting>;":<;value>;
}"
````
注意:在没有SIM卡或脱机运行时,时区可能不会自动更新以匹配本地时区。在这种情况下,您可能需要使用testvars.json中的设置来强制时区与所需时区匹配,该设置将在测试设置期间进行设置:
``json
"settings":{
"time.timezone":<;value>;,
"time.timezone.user selected":<;value>;
"
````
`"prefs":{(dict)`对ov的自定义首选项请忽略gecko的默认首选项。
这些将在每次测试运行之前设置,但不是必需的。
``json
"prefs":{
"<;name>;":<;value>;
}"
````
KS页面](https://developer.mozilla.org/en-us/docs/gaia_test_runner)了解并确认运行这些测试时所涉及的风险,否则将不会运行
测试。
测试数据先决条件在
测试设置期间无法设置的re。以下测试需要先设置数据,然后才能成功运行
:
"测试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个字符的行长度相当宽松。
==
[gaia]的测试而设计(https://github.com/mozilla-b2g/gaia)。
=============
您需要一个
[支持木偶的Firefox构建](https://developer.mozilla.org/en-us/docs/mariotte/builds)
[成功连接到](https://developer.mozilla.org/en-us/docs/mariotte/connecting_to_b2g)。
安装
只想在不进一步开发gaia ui测试的情况下运行测试:
easy_install gaiatest
另一方面,如果您想修改gaia ui测试,请执行以下操作:
在运行
"python setup.py develop"之前,请考虑设置虚拟环境。这是完全可选的。
virtual env env-name
source env-name/bin/activate
aia/tests/python/gaia ui tests
python setup.py develop
json文件(请参阅下面的**测试变量**部分
),显示您对风险的确认,以运行测试。
命令行界面
===
提供了一个有用的命令行工具,用于与gaia交互。对于完整的
用法详细信息,请运行"gcli--help",对于特定命令的帮助,请使用"gcli
<;command>;--help"。
setsetting screen.brightness 1
$gcli connectwifi 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文件夹,并将
设备还原到公共状态
--timeout<;time in millishes>;以将所有gaatest和mariotte的超时值设置为指定值。如果没有这个设置,gaiatest将尝试检测b2g实例,并为搜索、页面和脚本超时设置安全超时。
要做到这一点,就需要获取一个夜间的"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`选项的测试变量的详细信息。
多种类型,有些类型意味着其他类型,有些类型是互斥的-例如,测试不能同时是"在线"和"离线"
,但定义为"局域网"的测试是"在线"的。请注意,尽管有这些
规则,但对类型的检查没有错误,因此在分配
规则时必须小心。默认类型在清单文件的[默认]部分中设置,并由包含引用的清单文件继承。
这里是使用的类型列表,以及何时使用它们:
*天线-这些测试需要连接天线(耳机)。
*b2g-this me me测试是一个b2g(firefox os)测试。所有测试必须包括
此类型。
*蓝牙-需要蓝牙可用。
*摄像头-这些测试需要使用摄像头。
*运营商-需要具有运营商连接的活动SIM卡。
*闪存-这些测试需要使用闪存。
*LAN-本地连接这些测试需要操作(不是单元数据)(请参见下面的
注意)。
*脱机-特别是不需要联机连接。
*联机-需要某种联机连接(LAN或运营商)。
*QEMU-这些测试需要运行Firefox OS模拟器。
*SDCard-存储数据设备必须存在。
*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卡的电话号码、国家和网络。
``json
"运营商":{
"电话号码":",
"国家":",
"网络":"
}
````
`"IMEI":"(字符串)`测试电话的12位IMEI码。
`"远程电话号码":"(字符串)`您的设备在T期间可以拨打的电话号码
"他考试(尽量不要惹人讨厌!)。请在号码前加上"+"和
国际拨号代码。
`"WiFi":{}{(dict)`这是WiFi连接的设置。目前,wpa/wep/etc支持wpa/wep/etc支持wpa/wep/etc支持wpa/wep/etc支持wpa-wifi网络,可以通过以下步骤添加wifi网络:
(记住用网络支持的值替换"keymanagement"和"wep":
``json
"wififi":{
"ssid":"mynetwork"、
"keymanagemanage":"wep"、
"wep":"mypassword"
"json
"wpa-psk:西ifi"{
"ssid":"mynetwork",
"keymanagement":"wpa-psk",
"psk":"mypassword"
}
`````
注意:由于[bug 775499](http://bugzil.la/775499),通过
wpa-eap的wifi连接此时无法使用。
`"email":{}(dict)`电子邮件测试使用的电子邮件登录信息。它可以
包含不同类型的电子邮件帐户:
gmail:
``json
"gmail":{
"name":",
"email":",
"password":"
<
<
``` `
"email"或不同的电子邮件协议:
``json
"imap":{
"imap":"{
"email":",
"password":",
"imap-imap-uphostname":",
"imap-imap-imap-hostname":",
"gmail imap_name":",
"IMAP网络端口":",
"smtp网络主机名":",
"smtp网络名称":",
"smtp网络端口":"
"或:
`` `
` ` ` ` ` `‘json
"active sync":{
"name":",
"电子邮件":",
"电子邮件":",
"密码":",
"主动同步网络主机名":",
"主动同步网络用户名":",
<
<<
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `{}(dict)`覆盖gai的自定义设置默认设置。
这些设置将在每次测试运行前设置,但不是必需的。
``json
"设置":{
"<;setting>;":<;value>;
}"
````
注意:在没有SIM卡或脱机运行时,时区可能不会自动更新以匹配本地时区。在这种情况下,您可能需要使用testvars.json中的设置来强制时区与所需时区匹配,该设置将在测试设置期间进行设置:
``json
"settings":{
"time.timezone":<;value>;,
"time.timezone.user selected":<;value>;
"
````
`"prefs":{(dict)`对ov的自定义首选项请忽略gecko的默认首选项。
这些将在每次测试运行之前设置,但不是必需的。
``json
"prefs":{
"<;name>;":<;value>;
}"
````
KS页面](https://developer.mozilla.org/en-us/docs/gaia_test_runner)了解并确认运行这些测试时所涉及的风险,否则将不会运行
测试。
测试数据先决条件在
测试设置期间无法设置的re。以下测试需要先设置数据,然后才能成功运行
:
"测试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个字符的行长度相当宽松。