300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 自动化测试之:python+unittest+selenium

自动化测试之:python+unittest+selenium

时间:2019-01-30 13:13:16

相关推荐

自动化测试之:python+unittest+selenium

目录

一、准备条件——使用禅道自己搭建和部署测试环境

二、框架总体规划及完成禅道页面登录

三、在selenium中使用unittest新增和修改测试用例

四、执行测试用例集——执行unittest测试用例集 runner.run(suite)

五、unittest完成HTML测试报告的生成

一、准备条件——使用禅道自己搭建和部署测试环境

1)在官网下载禅道禅道11.7版本发布,主要修复Bug,升级禅道客户端 - 禅道下载 - 禅道开源项目管理软件->放在根目录下解压处XAMPP文件夹->点击start.exe->点击访问禅道即可进入登录页面,在左下角有一个Apache的用户验证访问选项,测试的时候可以选择不勾选这个选项,直接进入禅道的登录页面->禅道的登录账号和密码默认是:账号:admin 密码:123456,首次登录需要修改密码。

二、框架总体规划及完成禅道页面登录

如下图,我们需要做一些准备工作搭建测试框架,首先需要新建新建测试工程,我在这里建立的是unittest_train,随后在工程下新建如下5个模块或代码文件

用例case:包含测试用例文件夹和BUG用例文件夹,test1.py和test2.py分别用不同的def函数编写不同的测试用例脚本log日志:report:这个文件夹用来输出测试报告及测试截图untils:run.py:这个文件用来批量运行想要测试的用例集

,完成到这里准备工作差不多就完成了,接着需要开始创建测试用例了

三、在selenium中使用unittest新增和修改测试用例

举个小例子,我test2.py中编写两条测试用例脚本:

第一条case是test_00login,测试目的是:为了验证是否能正常启动浏览器,打开禅道登陆界面

第二条case是test_01addcase,测试目的是:为了验证是否能正常启动浏览器,打开禅道登陆界面并完成自动登录,并进入到zentao测试平台,自动添加测试用例test_01addcase,并验证是否建立于平台上的case是否正确

import unittest #导入框架from selenium import webdriver #导入驱动和selenium库import time as t #导入时间模块class test_2(unittest.TestCase):def test_00login(self):self.driver = webdriver.Chrome()self.driver.get('http://127.0.0.1/zentao/user-login.html')passdef test_01addcase(self):print('每条用例开始前的操作...')self.driver = webdriver.Chrome()self.driver.get('/post/6844904135343472654')self.driver.get('http://127.0.0.1/zentao/user-login.html')self.driver.maximize_window()t.sleep(7)self.driver.get_screenshot_as_file('E:\\pythontrain\\unittest_train\\report\\png\\1.png')#截图self.driver.find_element_by_xpath('//*[@id="account"]').send_keys('admin')self.driver.find_element_by_xpath('//*[@name="password"]').send_keys('luoyiran123456')#登陆输入密码self.driver.find_element_by_xpath('//*[@id="submit"]').click()#点击提交t.sleep(2)self.driver.get_screenshot_as_file('E:\\pythontrain\\unittest_train\\report\\png\\2.png') # 截图self.driver.find_element_by_xpath('//*[@id="navbar"]/ul/li[4]/a').click()#点击“测试”t.sleep(2)self.driver.find_element_by_xpath('//*[@id="subNavbar"]/ul/li[2]/a').click()#点击“用例”t.sleep(2)self.driver.get_screenshot_as_file('E:\\pythontrain\\unittest_train\\report\\png\\3.png')self.driver.find_element_by_xpath('//*[@id="mainMenu"]/div[3]/a[2]').click()#点击“建用例”t.sleep(2)self.driver.find_element_by_xpath('//*[@id="title"]').send_keys('test_01addcase')t.sleep(3)self.driver.execute_script("scroll(0,1000)")t.sleep(2)self.driver.find_element_by_xpath('//*[@id="submit"]').click()## 因为在点击保存按钮的时候保存按钮是隐藏在下面的,所以需要通过滚轮让y坐标增加,也就是往下滚看得到保存按钮t.sleep(2)self.assertIn('test_01addcase', self.driver.page_source)#这里就需要用上断言,判断刚刚创建的用例是否存在self.driver.get_screenshot_as_file('E:\\pythontrain\\unittest_train\\report\\png\\用例创建完成.png')t.sleep(5)passif __name__ =='__main__':unittest.main()

四、执行测试用例集——执行unittest测试用例集 runner.run(suite)

import unittestfrom selenium import webdriverimport time as tfrom mon.by import Byfrom mon.action_chains import ActionChainsimport win32apiimport HTMLTestRunnerimport unittest#-*- coding:utf-8 -*-def all_case():case_dir = r"E:\pythontrain\unittest_train\case\test_case" #这里填写你刚刚创建的case文件夹的目录testcase = unittest.TestSuite()discover = unittest.defaultTestLoader.discover(case_dir,pattern='test*.py',top_level_dir=None)#discover方法筛选出来的用例,循环添加到测试套件中for test_suit in discover:for test_case in test_suit:testcase.addTest(test_case)#添加用例到testcaseprint(testcase)return testcaseif __name__=="__main__":# runner = unittest.TextTestRunner()report_path = r"E:\pythontrain\unittest_train\report\html\result.html" # 这里就是你创建的result.htmlfp = open(report_path, 'wb')runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'这是我的自动化测试报告', description=u'测试用例执行情况:')# run所有用例runner.run(all_case())fp.close()

五、unittest完成HTML测试报告的生成

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。