selenium+python+unittest自动化测试框架(一)

背景
最近自己利用空余时间,学习了selenium的一些基础知识,但在实际工作的项目中,暂时还没应用到,想着就平时还是多实践一下吧,有什么问题大家可以一起讨论,一起学习。

一、所需工具
本次使用的是主要工具及相关环境配置如下:
ptyhon 3.5.2 :可自行前往官网进行下载并安装;
selenium :安装好python后,可在命令行窗口,输入pip install selenium就可安装最新版本的selenium;
PyCharm : 这个编程工具使用起来很方便,可去官网下载,需注意的下载专业版的可不是免费的,不过这个问题也是很好解决滴,某度上可是有很多方法滴;
chrome driver:谷歌的驱动,我的谷歌浏览器是74.0的,这里需要注意的是driver版本与谷歌浏览器版本的匹配问题;

二、简单的自动化测试脚本
环境搭建部分在这就不进行描述了,网上有很多教程,大家可以参考的,下面就是对csdn首页页面的跳转写一个简单的自动化测试脚本,主要是用来判断点击相关按钮跳转后,页面title一致性问题。

#coding=utf-8
from selenium import webdriver
import unittest
import time

#使用CSDN进行自动化测试
class CsdnTestcase(unittest.TestCase):
    def setUp(self):
        print("run testcase!")
        url = "https://www.csdn.net"
        self.driver = webdriver.Chrome() #选择谷歌浏览器
        self.driver.get(url)  #打开该URL页面

        #两秒后,将窗口最大化显示
        time.sleep(2)
        self.driver.maximize_window()

    def testCase(self):
        time.sleep(2)
        # 通过class定位,点击页面菜单栏的“博客”
        self.driver.find_element_by_class_name("toolbar_to_feed").click()

        #使用断言,判断跳转后的title是否与要求一致
        try:
            self.assertEqual(u"CSDN博客-专业IT技术发表平台",self.driver.title)
            print("the testcase passed!")
        except AssertionError as e:
            print("the testcase failed")

    def tearDown(self):
        print("the testcase finished!")
        time.sleep(2)
        self.driver.quit()    #执行完成后,退出退出浏览器

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

如图是运行结果:
selenium+python+unittest自动化测试框架(一)_第1张图片
将页面title进行修改,再执行代码,运行结果如图所示:
selenium+python+unittest自动化测试框架(一)_第2张图片

三、本次总结
在使用selenium进行自动化时,需要熟练掌握页面各个元素的定位,合理使用常用的元素定位方法,结合unittest提供的断言方法,让整个脚本更加完善,下一次将尝试使用TestSuite类执行多个测试用例,从而来实现自动化。

你可能感兴趣的:(测试)