(四十四)Unittest单元测试框架之关于unittest还需要知道的-编写Web测试用例
随笔记录方便自己和同路人查阅。
#------------------------------------------------我是可耻的分割线-------------------------------------------
学习selenium自动化之前,最好先学习HTML、CSS、JavaScript等知识,有助于理解定位及操作元素的原理。关于python和selenium安装请自行搜索别的资料,这里就不多做介绍了,所有例子均使用python3.6+selenium执行的。
#------------------------------------------------我是可耻的分割线-------------------------------------------
编写Web测试用例
前面用了相当多的文章详细介绍了unittest单元测试框架,其目的是用它来运行Web自动化测试脚本。再次致歉,需要简单规划以下测试目录:
创建Web测试用例。新建test_baidu.py
# !/usr/bin/env python # -*- coding: UTF-8 –*- __author__ = 'Mr.Li' from selenium import webdriver import unittest import time class MyTest(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.maximize_window() self.driver.implicitly_wait(10) self.base_url = 'http://www.baidu.com' def test_baidu(self): driver = self.driver driver.get(self.base_url + "/") driver.find_element_by_id('kw').clear() driver.find_element_by_id('ke').send_keys('unittest') driver.find_element_by_id('su').click() time.sleep(2) title = driver.title self.assertEqual(title,"unittest_百度搜索") def tearDown(self): self.driver.quit() if __name__ == '__main__': unittest.main()
新建test_youdao.py文件
# !/usr/bin/env python # -*- coding: UTF-8 –*- __author__ = 'Mr.Li' from selenium import webdriver import unittest import time class MyTest(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.maximize_window() self.driver.implicitly_wait(10) self.base_url = 'http://www.youdao.com' def test_baidu(self): driver = self.driver driver.get(self.base_url + "/") driver.find_element_by_name('q').clear() driver.find_element_by_name('q').send_keys('webdriver') driver.find_element_by_xpath('//*[@id="form"]/button').click() time.sleep(2) title = driver.title print(title) self.assertEqual(title, "【webdriver】什么意思_英语webdriver的翻译_音标_读音_用法_例句_在线翻译_有道词典") def tearDown(self): self.driver.close() if __name__ == '__main__': unittest.main()
在test_case/目录下分别创建百度搜索test_baidu.py和有道搜索test_youdao.py测试文件,并在测试文件中编写Web自动化测试用例。
runtest.py
import unittest #定义测试用例的目录为当前目录 test_dir = './' dicscover = unittest.defaultTestLoader.discover(test_dir,pattern='test*.py') #执行测试类的测试方法 if __name__ == '__main__': runner = unittest.TextTestRunner() runner.run(dicscover)
保存测试结果
你可能还有个疑问,report目录是做什么的?也许从命名上你已经猜到它是用来存放测试报告的,那么怎样把测试结果生成一个log.txt的文件呢?这里需要借助dos命令来实现。
首先打开Windows命令提示符,进入.../test_project/目录下执行命令,如下图:
执行命令:python runtest.py >> report/log.txt 2>&1
打开log.txt文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异