跳到主要内容

LambdaTest 服务

wdio-lambdatest-service 是一个第三方包,更多信息请查看 GitHub | npm

WDIO health check

一个WebdriverIO服务,用于管理LambdaTest用户的隧道和工作元数据。

安装

npm i wdio-lambdatest-service --save-dev

关于如何安装WebdriverIO的说明可以在这里找到。

配置

WebdriverIO内置了对LambdaTest的支持。你只需在wdio.conf.js文件中设置userkey即可。要为应用自动化启用此功能,请在wdio.conf.js文件中设置product: 'appAutomation'。此服务插件提供对LambdaTest Tunnel的支持。同时设置tunnel: true也可以激活此功能。

// wdio.conf.js
exports.config = {
// ...
user: process.env.LT_USERNAME,
key: process.env.LT_ACCESS_KEY,
logFile : './logDir/api.log',
product : 'appAutomation',
services: [
['lambdatest', {
tunnel: true
}]
],
// ...
};

在自动化仪表板上获取测试错误备注

要在自动化仪表板上获取测试错误备注,只需在wdio.conf.js中添加ltErrorRemark: true

从本地或URL上传应用

通过在wdio.conf.js中添加此必需配置,从本地或托管应用URL上传androidios应用。要在同一运行中使用上传的应用进行测试,请设置enableCapability = true,这将在功能中设置应用URL值。

// wdio.conf.js
services: [
[
"lambdatest",
{
tunnel: true,
app_upload: true,
app:{
app_name : "xyz", //提供你想要的应用名称
app_path : "/path/to/your/app/file", //提供本地应用位置
// 或
app_url : "https://example.test_android.apk", //提供托管或存储应用的URL
custom_id : "12345", //提供你想要的自定义ID
enableCapability : true
}
}
]
]

选项

为了授权访问LambdaTest服务,你的配置需要包含userkey选项。

tunnel

将此设置为true以启用从LambdaTest云通过你的计算机路由连接。你还需要在浏览器功能中将tunnel设置为true。

类型:Boolean
默认值:false

lambdatestOpts

指定的可选项将传递给LambdaTest Tunnel。

类型:Object
默认值:{}

以下是所有可用选项的完整列表:

tunnelName

指定要使用的自定义LambdaTest Tunnel名称。

示例:

{"tunnelName": "my_custom_tunnel"}

port

LambdaTest Tunnel激活的端口。

示例:

{"port": 33000}

user

LambdaTest用户名。

示例:

{"user": "your_username"}

key

LambdaTest访问密钥。

示例:

{"key": "your_access_key"}

verbose

是否将每个代理请求记录到标准输出。

示例:

{"verbose": true}

logFile

LambdaTest Tunnel日志文件的位置。

示例:

{"logFile": "/path/to/log/file"}

config

要使用的配置文件路径。 示例:

{"config": "/path/to/config/file"}

dir

指定将由Tunnel端口上的文件服务器提供服务的本地目录。

示例:

{"dir": "/path/to/local/directory"}

proxyHost

指定Tunnel代理端口主机名。

示例:

{"proxyHost": "proxy.example.com"}

proxyUser

指定Tunnel代理端口用户名。

示例:

{"proxyUser": "your_proxy_username"}

proxyPass

指定Tunnel代理端口密码。

示例:

{"proxyPass": "your_proxy_password"}

proxyPort

指定Tunnel代理将激活的端口号。

示例:

{"proxyPort": 8080}

egressOnly

仅对出站请求使用代理设置。

示例:

{"egressOnly": true}

ingressOnly

仅通过指定的代理路由传入流量。

示例:

{"ingressOnly": true}

pacfile

要在本地测试中使用PAC(代理自动配置),请提供PAC文件的路径。

示例:

{"pacfile": "/path/to/pacfile"}

loadBalanced

为LambdaTest Tunnel激活负载均衡

示例:

{"loadBalanced": true}

mode

指定隧道应以哪种模式运行:"ssh"或"ws"。(默认为"ssh")。

示例:

{"mode": "ssh"}

sshConnType

指定ssh连接类型(over_22、over_443、over_ws)。要使用–sshConnType,请先指定––mode ssh标志。

示例:

{"sshConnType": "over_22"}

maxSSHConnections

增加从Tunnel客户端到Tunnel服务器的SSH连接。最大允许值为30。

示例:

{"maxSSHConnections": 2}

sharedTunnel

在团队成员之间共享Tunnel。

示例:

{"sharedTunnel": true}

env

LambdaTest Tunnel将运行的环境。

示例:

{"env": "production"}

infoAPIPort

在指定端口上暴露Tunnel Info API

示例:

{"infoAPIPort": 8080}

callbackURL

隧道状态的回调URL。

示例:

{"callbackURL": "https://example.com/callback"}

allowHosts

通过隧道路由的主机的逗号分隔列表。其他所有内容将通过互联网路由。

示例:

{"allowHosts": "example.com,anotherexample.com"}

bypassHosts

从隧道绕过的主机的逗号分隔列表。这些将通过互联网路由。

示例:

{"bypassHosts": "example.com,anotherexample.com"}

clientCert

mTLS客户端证书文件路径。

示例:

{"clientCert": "/path/to/client_certificate"}

clientKey

mTLS客户端密钥文件路径。

示例:

{"clientKey": "/path/to/client_key"}

mTLSHosts

mTLS主机的逗号分隔列表。

示例:

{"mTLSHosts": "example.com,anotherexample.com"}

dns

DNS服务器的逗号分隔列表。

示例:

{"dns": "8.8.8.8,8.8.4.4"}

mitm

为LambdaTest Tunnel启用MITM(中间人)模式。

示例:

{"mitm": true}

ntlm

使用Microsoft NTLM(Windows NT LAN Manager)认证进行通信或传输。

示例:

{"ntlm": true}

pidfile

将写入进程ID的pidfile路径。

示例:

{"pidfile": "/path/to/pidfile"}

usePrivateIp

将远程地址设置为客户机的内部IP。

示例:

{"usePrivateIp": true}

你可以在这里找到有关这些选项的更多信息。

preferScenarioName

仅适用于Cucumber。如果只运行单个场景,则将会话名称设置为场景名称。 在与wdio-cucumber-parallel-execution并行运行时很有用。

类型:Boolean
默认值:false

sessionNameFormat

自定义会话名称格式。

类型:Function
默认值(Cucumber/Jasmine):(config, capabilities, suiteTitle) => suiteTitle
默认值(Mocha):(config, capabilities, suiteTitle, testTitle) => suiteTitle + ' - ' + testTitle

sessionNameOmitTestTitle

仅适用于Mocha。不要将测试标题附加到会话名称。

类型:Boolean
默认值:false

sessionNamePrependTopLevelSuiteTitle

仅适用于Mocha。将顶级套件标题前置到会话名称。

类型:Boolean
默认值:false

setSessionName

自动设置会话名称。

类型:Boolean
默认值:true

setSessionStatus

自动设置会话状态(通过/失败)。

类型:Boolean
默认值:true

ignoreTestCountInName

在名称中忽略测试重试的计数

类型:Boolean
默认值:false

useScenarioName

要获取特定于cucumber的测试的场景名称作为测试名称,只需在wdio.conf.js中添加useScenarioName: true

编译和发布的步骤

  1. 克隆此存储库。
  2. 运行"npm install"
  3. 运行"npm run build"
  4. 发布步骤:运行"npm login"
  5. 运行"npm publish --access public"

有关WebdriverIO的更多信息,请查看主页

Welcome! How can I help?

WebdriverIO AI Copilot