大家测试 Django 应用是用 Django 自带的 client 还是用 Selenium

2014-03-10 10:30:27 +08:00
 clker
自带的client测试比较直接,可以直接测试render之前的变量,但不能测试javascript
Selenium可以测javascript,但比较慢,只能测试render后的页面
大家都是怎么做的呢?第一次做,请教一下。
4095 次点击
所在节点    Python
14 条回复
sunsongxp
2014-03-10 10:52:55 +08:00
这是两种不同的测试思路,应该都要做,而且Django支持LiveServerTest,可以直接起Django自己的Server,并且支持导入Fixture,Test脚本可以调用Selenium来测。

贴两个有用的链接

https://docs.djangoproject.com/en/dev/topics/testing/tools/#liveservertestcase
http://selenium-python.readthedocs.org/
clker
2014-03-10 11:00:03 +08:00
@sunsongxp 所以您的意思是不是:

对于fat model的设计而言
client用来测试model和数据库方面的逻辑
liveservertest用来测试页面javascript和views的逻辑

谢谢指教!
sunsongxp
2014-03-10 11:05:10 +08:00
@clker 是的
unfurl
2014-03-10 11:07:27 +08:00
两种对应不同的测试阶段罢了
client适合集成测试阶段
selenium适合系统测试阶段
est
2014-03-10 11:31:25 +08:00
selenium不支持post。约等于废品。鉴定完毕。
wgjtyu
2014-03-10 12:06:32 +08:00
selenium用来模拟用户在浏览器的操作,把前后端结合在一起测
RIcter
2014-03-10 12:20:12 +08:00
测试javascript...
比较好的做法是前端和后端分离那样..?
clker
2014-03-10 12:24:59 +08:00
@RIcter 能具体的说说吗?

你是如何测试javascript的?
RIcter
2014-03-10 12:30:04 +08:00
@clker 我只测试过后台=-=
yueyoum
2014-03-10 12:41:42 +08:00
对于一些特殊的post,比如直接把 raw data 直接 post过去, django 自己的 client 是无法做到的。 只能用k, v的方式。

所以我直接用的 urllib2。

如果谁知道用client可以直接post raw data。请告知
sunsongxp
2014-03-10 14:37:18 +08:00
@est
@yueyoum

Selenium 是用来模拟用户操作的,和是否支持POST毫无关系,只要你页面里面Javascript或者Form发POST请求,Selenium可以靠模拟用户操作触发POST请求。
est
2014-03-10 15:56:41 +08:00
@sunsongxp 既然都需要用javascript的form 来发送POST请求了。为毛不直接用requests?还可以在命令行下全跑通,速度更溜。

btw 有人试过用ajax提交一个带input type=file的multipart么?我试了下感觉蛋都要碎了。
yueyoum
2014-03-10 18:02:22 +08:00
@sunsongxp

恩,不过我问的是 django client 而不是Selenium
limon
2014-03-11 17:04:31 +08:00
这方面还是rails做的比较无脑。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/103611

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX