Te3270 ruby​​代码示例与x3270驱动程序和黄瓜

时间:2016-01-12 19:07:22

标签: ruby automation cucumber

我正在尝试使用Ruby下的黄瓜自动执行一些测试任务,使用TE3270 gem和X3270免费驱动程序连接到Mainframe平台,但是打开Mainframe屏幕的一部分不能再进一步了。

代码在Windows 7上运行,Ruby 2.1。

这是我根据TE3270网站上显示的代码:

require 'TE3270'

World(TE3270::ScreenFactory)

Before do
        @emulator = TE3270.emulator_for :x3270 do |platform|
        platform.executable_command = '"C:\Program Files (x86)\wc3270\wc3270.exe"'
        platform.host = 'mainframe.hostname'
        platform.max_wait_time = 5  # defaults to 10
        platform.trace = true # turns on trace output from the emulator
    end
end

Given /^my connection$/ do 
    my_screen = MainframeScreen.new(@emulator)

    my_screen.userid = 'my_mainframe_user'
    my_screen.password = 'my_mainframe_password'  
end

class MainframeScreen
    include TE3270

    text_field(:userid, 19, 36, 8)
    text_field(:password, 20, 36, 8)

    def login(username, password)
        self.userid = username
        self.password = password
    end
end

有什么想法吗?

此致 强尼

1 个答案:

答案 0 :(得分:1)

我现在不使用黄瓜,但我确实有一些工作代码可供阅读和写作。

我正在使用s3270无显示工具将屏幕抓取脚本编写为platform.executable_command。 (现在在Mac上,但我过去也在Windows上使用过它;你只需要downloadinstall from source。)

到目前为止,这对我有用的关键是wait_for_string功能。我还建议使用text方法转储屏幕输出。

require 'te3270'

class MainframeScreen
  include TE3270

  text_field(:welcome, 3, 34, 14, false)
  text_field(:application, 22, 21, 8)
end

emulator = TE3270.emulator_for :x3270 do |platform|
  platform.executable_command = 's3270'
  platform.host = '192.168.1.1'
end

screen = MainframeScreen.new(emulator)

screen.wait_for_string "Welcome to IBM", 3, 34
puts screen.welcome

screen.populate_screen_with :application => 'TSO'
screen.send_keys TE3270.Enter