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个字符的行长度相当宽松。

欢迎加入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)”的问题