数据驱动 ios-Calabash 自动化测试使用 xml 或 css 或全局变量

data driven ios-Calabash automated testing using xml or css or global variables

我正在使用 calabash-ios 进行自动化测试。我希望能够 运行 黄瓜一次,并在测试场景 ios.

的范围内对 x 个用户名和 运行 进行 运行 x 次

我想用这个:

假设我使用 ID [#{Login-name}] 和密码 "PASSWORD" 作为 [#{country-name}] 用户登录 并有一个全局变量,可以存储国家和用户名的值。

我曾希望使用脚本来 运行 黄瓜 x 次并每次都设置全局变量的值。这可能吗?如果是这样,有人可以指出正确的方向吗?

我试过使用: @@登录名=值 但出现此错误: features/step_definitions/common.rb:1: 警告:class 来自顶层的变量访问 对象中未初始化的 class 变量 @@Login (NameError)

否则,是否可以使用 calabash 访问存储在 xml 或 css 文件中的数据?

如果你想 运行 同一个黄瓜 运行 多次使用一些不同的变量,你可以只使用环境变量。

Given I login as "ENV['COUNTRY_NAME']" user using id "ENV['LOGIN_NAME']" and pwd "PASSWORD"

然后当你 运行 测试时

LOGIN_NAME='login name' COUNTRY_NAME=country bundle exec cucumber 

当然你可以把你想要的所有行 运行 放到 bat 或 sh 脚本中。

需要注意的一件事是使用环境变量或其他变量来更改输出路径,以免覆盖它们。

然而,一个更优雅的解决方案是使用 运行 所有其他任务的 rake 任务来处理它。最有效的编写方式取决于您需要多少个不同的 运行。

task :all => [:task1, :task2, :task3]

编辑:为了使您的方案更具可读性,您应该在方案中使用通用占位符并在步骤定义中隐藏环境变量。

    Given I login as a user

可能有一个如下所示的步骤定义:

Given /^I login as a user$/ do
  ... set up your page object here ...     
  login_page.login(ENV['COUNTRY_NAME'], ENV['LOGIN_NAME'])
end