将 Web 公式鼠标单击操作转换为 curl 命令

Translate web formular mouse click actions into curl commands

我需要用不同的数据填充一些网络公式,超过一百次,我想过制作一个脚本并为此使用 curl。我对这门语言很陌生,但我听说可以使用网络浏览器执行操作,以便它直接将它们翻译成 curl 命令,你知道这是否可能吗?

首先,我对webformular不是很熟悉,所以这种方法可能行不通。但是,我过去不得不做类似的事情,我将描述如何做。

N.B. 这种方法适用于不使用 https 加密且不需要身份验证的基本表单。您绝对可以扩展此脚本以处理更复杂的表单,但它超出了此答案的范围。

此外,如果您使用它来自动执行 POST 请求的表单,请比您只是做 GET 请求,因为脚本中的任何错误都可能导致 "more than hundred of times" 发送错误数据。

  1. 打开 Chrome 中的表格。

  2. 找出表单使用的action。右键单击 Chrome 中的表单,> "Inspect element"。你会看到下面出现一些文字。寻找这样的东西:

记下操作后的文字。这就是您在后面的步骤中需要的。

  1. 在表格中填写一些示例值。

4。启动 Chrome 开发人员工具。 (对我来说,就是 Control+Shift+I)。

  1. 转到 Chrome 工具箱中的 "Network" 选项卡,并密切关注它。

  2. 提交您的表单。现在,当您这样做时,您应该会在网络选项卡中看到一些 activity。您需要通过提交表单来确定创建了哪个调用。这就是为什么您记得步骤 2 中的操作。查找路径与表单操作相同的条目。

  3. 找到它后,右键单击该命令并 select "Copy as cURL"。瞧,你现在有一个可以使用的 cURL 命令了!

  4. 将该 cURL 命令放入脚本中,然后将您在第 3 步中填写的示例值更改为您要自动填写的值。例如,如果 cURL 命令是:

    curl '[somewebsite]/[form action]' -H 'Origin: [somewebsite]' -H 'Accept-Encoding: gzip,deflate' -H 'Accept-Language: en-US,en;q=0.8' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Connection: keep-alive' --data 'name=Danver&status=Awesome' --compressed

不用管headers(-H传递的东西),寻找字段--data。在其中,可能通过使用脚本更改周围的值。具体细节取决于您的脚本语言。

  1. 现在您已经完成了,只要您的表单不需要活动的 session cookie 即可提交表单。如果是这种情况,您必须采取的方法稍微超出了这个答案的范围,但它仍然是可能的。

我想说 Behat + Mink 对于这个目的更有用。 例如看这里:http://mink.behat.org/en/latest/guides/manipulating-pages.html#form-field-manipulations

事实上,你的动作毕竟会被翻译成 curl,但你不必深入细节,你会以一种非常舒服的方式描述它们...... 之后你就可以自称是 QA 初级专家了:)

行为文档:http://behat.org

不错的教程视频:http://lin-clark.com/blog/2013/11/26/quickstart-testing-with-behat-mink-selenium/