简单的待办事项清单网站--准备工作

首先要说的是,此系列(如果不断掉的话)博客为学习《python web开发 –测试驱动方法》此书的过程。如果感兴趣的话请购买实体书。具体为:

Test-Driven Development with Python by Harry Percival(O’Reilly).Copyright 2014 Harry Percival,978-1-449-36482-3
此书网站地址为:http://shop.oreilly.com/product/0636920051091.do

前提条件

使用语言:python3.6,需了解html,css,javascript
会用:git,若不了解请参考https://cloud.tencent.com/community/article/527818,当然最好自己找本书认真去学。
平台:windows,安装有firefox,IDE为pycharm

准备工作

假设你已经安装并设定了python3的环境变量(https://www.python.org),你需要安装django,selenium,windows需要安装geckodriver,参考http://blog.csdn.net/wslg1010/article/details/52997070

注意:firefox很可能因为版本过高而导致selenium没有支持,若无法使用请换低版本firefox,地址为:http://ftp.mozilla.org/pub/firefox/releases/

博客目标

熟悉django
了解简单网站的建立和部署过程。
熟悉tdd(Test-Driven Development)流程

第一步

想知道那个准备时期麻烦的selenium的作用吗?
如果你按照步骤完成的话,编写一个python文档:

from selenium import webdriver

browser=webdriver.Firefox()
browser.get('https://github.com')

等一会儿就可以看到firefox打开了github.com并停留在桌面上。这是功能测试的重要方法。是不是很神奇?

第二步

你需要运行起django。
如果你使用pycharm,你只需要建立一个django项目,然后在view-》tool windows-》terminal打开控制台。
如果你不是用pycharm,win+r 输入cmd enter后到你想要安装的地址输入:
django-admin.py startproject *(你想要起的项目名字)
好吧,最好学习cmd控制台命令,这个百度就好。
完成之后会出现下图类似的文件夹和文件。

简单的待办事项清单网站--准备工作_第1张图片

无论怎样,接下来在cmd,或者pycharm中的控制台输入:python manage.py runserver(我的由于python2 和3都在电脑上,所以使用的是:py -3 manage.py runserver)
打开浏览器,进入localhost:8000即可看到如下图:
简单的待办事项清单网站--准备工作_第2张图片

相当不错,接下来将selenium和django结合起来。

第三步

毕竟我读的书是驱动测试方法,一切以测试为起点。所以我们首先要设计一个过程:

有人知道了你正在设计网站,他问你并打开了这个网站,他发现上面那个网页,唔,特点就是:title是Welcome to Django。唔,他放弃并关闭了浏览器。

假设你的django还在运行,否则回到第二部即可。
接着就可以编写一下代码:

from selenium import webdriver

#one open firefox
browser=webdriver.Firefox()

#he open the website
browser.get('http://localhost:8000')

#he find welcome to django in title
assert 'Welcome to Django' in browser.title

#he quit
browser.close()

运行后发现程序自己打开了firefox,然后自动关闭了。perfect。但是咱们要测试的并不是django的开始界面,而是咱们自己的网站,那么就要修改测试的内容。并且用类将测试面向对象化是个不错的选择。那么上述代码可以改为:

from selenium import webdriver
import unittest

class FirstTest(unittest.TestCase):

#one open firefox
    def setUp(self):
        self.browser=webdriver.Firefox()

#he quit
    def tearDown(self):
        self.browser.close()

#he open the website and find To-Do in title
    def test_new_user_get_the_title(self):
        self.browser.get('http://localhost:8000')
        self.assertIn('To-Do',self.browser.title)
        self.fail('Finish the Test')

if __name__ == '__main__':
    unittest.main(warnings='ignore')

其中,unittest是python标准库中的测试模块,其中有setUp和tearDown两个函数,是特殊的方法,用于firefox的打开和关闭。unittest中测试必须使用test_开头的方法,起名时最好能够完整表达测试的目的。

接下来不出所料报错:

Traceback (most recent call last): File
“C:\Users\giligiliai\Desktop\Hello-World\1.py”, line 17, in
test_new_user_get_the_title
self.assertIn(‘To-Do’,self.browser.title) AssertionError: ‘To-Do’ not found in ‘Welcome to Django’

———————————————————————- Ran 1 test in 10.370s

FAILED (failures=1)

偶尔在测试中要使用到等待的方法,因为我们也可能需要看到浏览器的反应,使用:

self.browser.implicitly_wait(3)

可以使selenium停止3秒。
好吧,这部分失败了,也成功了。用git将代码版本控制起来是个不错的选择。既然假设已经会用git那这部分就不再阐述。至此准备完成。接下来才是正餐。

你可能感兴趣的:(python-web开发)