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

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

贴两个有用的链接

https://docs.djangoproject.com/en/dev/topics/testing/tools/#liveservertestcase
http://selenium-python.readthedocs.org/
clker
2014 年 3 月 10 日
@sunsongxp 所以您的意思是不是:

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

谢谢指教!
sunsongxp
2014 年 3 月 10 日
@clker 是的
unfurl
2014 年 3 月 10 日
两种对应不同的测试阶段罢了
client适合集成测试阶段
selenium适合系统测试阶段
est
2014 年 3 月 10 日
selenium不支持post。约等于废品。鉴定完毕。
wgjtyu
2014 年 3 月 10 日
selenium用来模拟用户在浏览器的操作,把前后端结合在一起测
RIcter
2014 年 3 月 10 日
测试javascript...
比较好的做法是前端和后端分离那样..?
clker
2014 年 3 月 10 日
@RIcter 能具体的说说吗?

你是如何测试javascript的?
RIcter
2014 年 3 月 10 日
@clker 我只测试过后台=-=
yueyoum
2014 年 3 月 10 日
对于一些特殊的post,比如直接把 raw data 直接 post过去, django 自己的 client 是无法做到的。 只能用k, v的方式。

所以我直接用的 urllib2。

如果谁知道用client可以直接post raw data。请告知
sunsongxp
2014 年 3 月 10 日
@est
@yueyoum

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

btw 有人试过用ajax提交一个带input type=file的multipart么?我试了下感觉蛋都要碎了。
yueyoum
2014 年 3 月 10 日
@sunsongxp

恩,不过我问的是 django client 而不是Selenium
limon
2014 年 3 月 11 日
这方面还是rails做的比较无脑。

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

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

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

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

© 2021 V2EX