自动化Web应用程序的建议(工作流程未测试)

时间:2009-02-23 22:55:02

标签: web-applications

客户拥有遗留的Web应用程序,主要用于捕获信息。该应用程序没有其他可用接口,例如网络服务,API。

典型的工作流程:

  • 第一种形式:通过单选按钮选择“付款”的“操作类型”。选择“回车”
  • 第二种形式:通过单选按钮选择“精细”的“付款方式”。选择“回车”
  • 第三种形式:通过单选按钮选择“停车”的“精细类型”。选择“回车”。
  • 第四种形式:输入停车罚款号码。选择“回车”。

后端系统会查找此停车罚款数量。

  • 第五种形式:显示详细信息摘要。选择“输入”。弹出“确认您希望通过信用卡支付额外的xx.xx”。选择“确定”。
  • 第六种形式:输入信用卡详细信息。选择“回车”。
  • 第七种形式:确认。

由于各种原因,客户希望通过文件提供这些详细信息。因此,我们将阅读记录并将详细信息插入上述相关字段。

我们可以通过像Selenium之类的东西捕获工作流程,但我们需要修改“脚本”,因为文件中的每条记录的细节都不同。

我们可能会发送一系列HTTP帖子吗?

解决方案必须在所有浏览器中运行,并且客户不希望在所有用户PC上安装插件等。

没有限制如何传递此信息,例如我们可以使用Java,C#(首选)或其他任何东西。

任何做过类似事情的人都有任何建议或建议吗?

1 个答案:

答案 0 :(得分:2)

您需要使用HTTP POST请求在没有浏览器的情况下执行此操作在简单性方面,诸如Perl,Python等脚本语言将是一个不错的选择 - 在这种情况下,实际代码可能不会超过30行。

你基本上必须:

  1. 可能会发出一个初始(设置)POST(用户名+密码)来模拟登录的人工代理
  2. 然后,

    1. 从输入文件中读取一组参数
    2. 使用第一个表单的参数子集(例如操作类型)
    3. 发出第一个POST
    4. 从POST回复中读取适用的<input type="hidden" name="..." value="...">标记(如果有)
    5. 使用第二个表单的参数子集(例如付款类型)发出第二个POST,以及在上一步骤中从POST回复中读取的任何name=value
    6. 从POST回复中读取适用的<input type="hidden" name="..." value="...">标记(如果有)
    7. 使用第三个表单的参数子集(例如精细类型)发出第三个POST,以及在上面的步骤中从POST回复中读取的任何name=value
    8. 重复输入文件中的下一组参数
    9. 您可能还必须指示您的HTTP库不要丢弃cookie,如果没有默认/已经配置,