基于 unittest 的 Web UI / HTTP 自动化测试框架

Posted 软件测试自动化测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于 unittest 的 Web UI / HTTP 自动化测试框架相关的知识,希望对你有一定的参考价值。

GitHub 上发现的一个自动化测试框架,封装的很厉害,对小白很友好,体验了下 demo 很不错,先看看下面封装好的 po 模式,很简洁。

"""import seldomfrom seldom import Seldomfrom poium import Page, Element
class BaiduPage(Page): """baidu page""" search_input = Element(id_="kw") search_button = Element(id_="su")
class BaiduTest(seldom.TestCase): """Baidu search test case"""
def test_case(self): """ A simple test """ page = BaiduPage(Seldom.driver) # page = BaiduPage(self.driver) page.get("https://www.baidu.com") page.search_input = "seldom" page.search_button.click() self.assertTitle("seldom_百度搜索")

if __name__ == '__main__': seldom.main(browser='chrome', debug=True)

上面可以看出来,简洁的不能再简洁。

特点:

  • 提供更加简单API编写自动化测试

  • 提供脚手架,快速生成自动化测试项目

  • 全局启动和关闭浏览器,减少浏览器的启动次数

  • 提供支持多种数据文件参数化

  • 支持用例失败/错误重跑

  • 支持生成html/XML测试报告

  • 支持HTTP接口测试 (v 2.0)

安装:

pip install seldom

创建项目:

seldom -project mypro

目录结构如下:

mypro/├── test_dir/│ ├── test_sample.py├── test_data/│ ├── data.json├── reports/└── run.py

  • test_dir/ 测试用例目录。

  • test_data/ 测试数据文件目录。

  • reports/ 测试报告目录。

  • run.py 运行测试用例主文件。

运行项目效果:

python3 run.py

__ __ ________ / /___/ /___ ____ ____ / ___/ _ \\/ / __ / __ \\/ __ ` ___/ (__ ) __/ / /_/ / /_/ / / / / / //____/\\___/_/\\__,_/\\____/_/ /_/ /_/ v2.3.0-----------------------------------------                             2021-10-12 00:47:33 [INFO] 📖 https://www.baidu.com2021-10-12 00:47:37 [INFO] ✅ Find 1 element: id=kw , input 'seldom'.2021-10-12 00:47:38 [INFO] ✅ Find 1 element: css selector=#su , click.2021-10-12 00:47:40 [INFO] 👀 assertIn title: seldom_百度搜索.2021-10-12 00:47:40 [INFO] 📖 https://www.baidu.com2021-10-12 00:47:41 [INFO] ✅ Find 1 element: id=kw , input 'poium'.2021-10-12 00:47:42 [INFO] ✅ Find 1 element: css selector=#su , click.2021-10-12 00:47:43 [INFO] 👀 assertIn title: poium_百度搜索.2021-10-12 00:47:43 [INFO] 📖 https://www.baidu.com2021-10-12 00:47:44 [INFO] ✅ Find 1 element: id=kw , input 'HTMLTestRunner'.2021-10-12 00:47:45 [INFO] ✅ Find 1 element: css selector=#su , click.2021-10-12 00:47:46 [INFO] 👀 assertIn title: HTMLTestRunner_百度搜索.2021-10-12 00:47:46 [INFO] 📖 http://www.itest.info2021-10-12 00:47:53 [INFO] 👀 assertIn url: http://www.itest.info/.2021-10-12 00:47:53 [PRINT] generated html file: file:///D:\\mypro\\reports\\2021_10_12_00_47_32_result.html2021-10-12 00:47:53 [PRINT] generated log file: file:///D:\\mypro\\reports\\2021_10_12_00_47_32_log.log.1.2.3.4

查看报告:

感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接免费拿走:

① 2000多本软件测试电子书(主流和经典的书籍应该都有了)

② 软件测试/自动化测试标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python编程语言、API接口自动化测试、web自动化测试、App自动化测试(适合小白学习)

⑤ Python学习路线图(告别不入流的学习) 

 

上图的资料 在我的QQ技术交流群里(技术交流和资源共享,广告进来腿给你打断)

可以自助拿走,群号953306497(备注“csdn111”)群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

 一定一定一定要备注暗号:CSDN11

以上是关于基于 unittest 的 Web UI / HTTP 自动化测试框架的主要内容,如果未能解决你的问题,请参考以下文章

[python]pytest实现WEB UI自动化

Python3+Selenium Web自动化测试案例分享⑹——unittest组织测试用例

Selenium基于Python web自动化基础二 -- 免登录等待及unittest单元测试框架

Python + Flask 项目开发实践系列《二》

基于HT for Web矢量实现3D叶轮旋转

十UI自动化unittest插件工具