ego微商小程序
unittest
unittest是python的单元测试框架,用它来做单元测试。使用import unittest则可直接使用。
为什么选择unittest
- 能够组织多个用例去执行
- 有丰富的断言方法
- 能够生成测试报告
unittest主要包含的内容
- TestCase(测试用例)
- TestSuite(测试套件,把多个TestCase集成到一个测试TestSuite)
- TestRunner(执行测试用例)
- TestLoader(自动从代码中加载多个测试用例TestCase)
- Fixture(UnitTest特性)
import time
import unittest
#创建测试套件
# 将测试用例添加到测试套件
import app
from lib import HTMLTestRunner
from script.test_ego import TestEgo
suite=unittest.TestSuite()
# 将测试用例添加到测试套件
suite.addTest(unittest.makeSuite(TestEgo))
#定义测试报告的名称
reportname=app.base_dir+"/report/mini_ego-{}.html".format(time.strftime("%Y%m%d-%H%M%S"))
# 使用HTMLTestRunner生成测试报告
with open(reportname,mode="wb") as f:
#实例化HTMLTestRunner
runner=HTMLTestRunner.HTMLTestRunner(f,verbosity=2,title="ego商城的接口测试报告")
#使用runner运行测试套件
runner.run(suite)
pytest
特点
- 简单灵活,容易上手 unittest可
- 支持参数化 unittest可
- 能够支持简单的单元测试与复杂的功能测试 unittest可
- 执行测试用例过程中,支持跳过操作 unittest可
- 支持重复执行失败的case
- 支持运行Nose,unittest编写的测试用例
- pytest支持很多第三方插件
- 方便的和持续集成工具进行集成
我是在pycharm里面直接安装的。
```python
class TestADD: #定义的类名必须以Test开头
def test_add_01(self): #定义的测试方法必须以test开头
result = add(1,2)
我是在终端执行测试用例的 通过 pytest -s -v
pytest -s -v (-s 输出的用例输出的信息 -v输出的是执行的用例类名以及方法名 )
插件
pytest - html
生成测试报告
pytest -ordering
控制pytest测试方法执行的顺序(unittest是根据测试方法名称的assicc码值的大小来执行)。使用方法@pytest.mark.run(order=x)
pytest-rerunfailures
失败重试插件
@pytest.mark.skipif(condition,reason=None) 跳过 condition表示跳过的条件
@pytest.mark.skip(reason=“None”) reason表示跳过的条件
web自动化框架
主流的web自动化工具
- QTP 由惠普公司开发的一款自动化工具,支持web、桌面的自动化测试。
- selenium 主要用来做web自动化测试,开源的免费的工具。
- root framework 自动化测试平台。通过它可以实现web自动化测试,接口测试自动化测试、桌面的自动化测试。
selenium特点
- 开源软件
- 跨平台
- 支持多种浏览器
- 支持多语言
- 支持多种操作系统
- 成熟稳定功能强大