HttpResponse, HttpRequest, WebClient

3

作为模拟 Web 浏览器的最简单方法,我该从哪里着手以符合最佳实践?

我已经建立了一个常规用户登录和更新用户信息(测试项目内容)的 Web 表单,现在我想以编程方式模拟填写。我该如何保留会话并将自己的值放入特定输入表单中,模拟按钮和链接的点击操作?

该项目的步骤是: 登录(用户名/密码) 查找表单链接(某些随机链接/文本) 填写表单(一些输入项) 点击保存(通过邮件确认给我)


有没有一个浏览器控件漂浮在某个地方? - ChaosPandion
1
你所说的“模拟Web浏览器”具体是什么意思?你需要JavaScript吗?渲染?还是只是想要HTTP流量? - Oded
Oded,JavaScript让事情变得更加复杂了。这些已经是众所周知的(尝试使用Linx浏览),所以不!JavaScript不涉及此事:-)。只需简单的post/get http流量即可。 - Independent
ChaosPandion。你们可能比起一开始看上去更接近了。我发现了这个链接并会在上班后查阅。farooqazam.net/c-sharp-auto-click-button-and-auto-fill-form/ - Independent
嗯,为什么这么多人使用注释呢?我觉得标记一些问题很麻烦:)。应该有一个“创建此注释的答案”的功能。 - Independent
@ChaosPandion 请将您的评论添加为答案,因为这是我们对这个问题最接近的答案!我会说非常有用。 - Independent
3个回答

1

你有没有考虑使用像http://seleniumhq.org/这样的工具呢?

Selenium IDE是一个Firefox插件,可以记录点击、输入和其他操作,生成测试用例,并在浏览器中回放。


把这一点信息加入你的问题中会很好。然而,我仍然认为Selenium(或类似工具)是模拟用户在网站上操作的最佳选择。 - Rippo
我还可以推荐UserFly,这是一个几乎可以像魔杖一样追踪网络活动的工具。但是它是需要实施的追踪工具。 - Independent
我同意。对于我的表述不够清晰,我深感抱歉!但是,像你所建议的那样的工具并不是我想要的。正如你所说,它是一个集成开发环境,需要用户进行交互。我不是在追踪活动。最后的电子邮件只是告诉我,我成功地使用了httprespons/request控制台客户端来强制提交表单的简单方式。 - Independent
userfly与Selenium不完全相同,因为它跟踪IT上线后访问您网站的用户。Selenium可以测试开发站点。 - Rippo

0

如果我正确理解你的问题,那么似乎你正在寻找一个网络表单测试客户端。如果你使用的是VS2010高级版或更高版本,你可以使用Coded UI测试来模拟你所描述的步骤--打开浏览器,登录到网站,填写表单,提交它(使用外部源的数据驱动),并验证结果。

请看看Coded UI测试这里,看看它是否符合你的需求。

这里还有一个视频来自Channel9,是一个不错的Coded UI测试入门介绍。

希望这能帮到你!


这里最重要的感觉是,任务应该在程序中自动完成,而不需要用户交互。Selenium看起来很不错,但我不想使用第三方软件,这是一个C#线程 :) - Independent
1
你可以编写UI测试,也可以让其他人进行录制。VS2010会生成一个C#类作为录制的结果,你可以按照自己的意愿进行操作。它生成的是纯C#代码。我们团队正在使用它,并且效果不错。 - David Hoerster
我觉得这个评论很有趣。明天上班时会查一下。我曾经尝试过几次使用VS测试项目,但总是回到了有用的目的上。这样做太麻烦了,只是为了得到一个“成功。您的查询返回了超过5行”的答案。我的意思是..嘿? :) - Independent
哦,高级版和专业版是不同的版本。所以好的,不,我仍然需要帮助手动编码。为什么这个问题完全没有提供纯C#编码的答案? - Independent
你没有说明你想要一个纯C#的解决方案。从技术上讲,编码UI测试确实会产生一个纯C#的结果——只是你必须拥有VS2010高级版或更高版本的许可证。你没有说明你正在使用什么环境。很抱歉我无法提供帮助。 - David Hoerster
谢谢David。我给这个问题打了一个标签,C#。其他人编辑了Webforms。如果我使用SharpDevelope、Vs Ultimate、Net 4/2或记事本呢?我认为这不是很重要,但我感到很好,因为人们不断地告诉我一些不清楚的行为。 - Independent

0

看起来你正在寻找一个框架来对你的应用进行单元测试。

据我所知,目前最好的测试Web应用程序的框架是Selenium

这里有一篇文章,可以帮助你了解如何开始使用这个框架。希望这能帮到你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接