目录
14.10 当你服务器满了之后,你们吞吐量和响应时间怎么变化的
14.14 你们吞吐量是多少,响应时间是多少,你设置了多少井发?
14.17 5000个人抢购,只能50个人能抢到,你怎么设计并发数的
14.18 微信群里面发送红包,5000个人群,只能3000个人能抢到,你怎么设计并发数的峰值
前言:
写着写着发现好像4-4还没完全写完,哈哈哈哈哈难搞哦,后面还会继续写后续的,废话不多说直接开始正文
十二、 Unittest框架
12.1 你们自动化用例是怎么管理的?
1. 所有用例都是放在 test_case的目录下的统一管理的。
2. 每个某块一个.py文件,数据独立放在excel表格中
3. 所有的具体用例脚本都是依据 unittest来编写的,利用ddt模型的装饰器来引用数据
- 然后跑用例这块,主要用的是 unittest框架来统一加载用例,并执行用例的.
如果要全量跑,调用 unittest中的 defaultTestLoader.discover这个函数来
加载 test_case目录下的所有.py文件。
12.2 Web UI自动化都用到过哪些库?
Selenium库 里面封装了丰富的对浏览器,页面元素进行操作的方法。
Xlrd库 主要用来实现对excel表格数据进行读取的APl
Pymysql库 主要用来操作数据库的
Ddt库 主要用来实现数据驱动的
Re库 主要用来提取html页面数据的
Unittest库 主要用来编写用例,管理用例,执行用例的。
12.3 Unittest框架的原理?
Unittest框架有几个大组件,1.测试固件( setUp,tearDown)
2.测试用例 3.测试套件 4.加载器 5.运行器 6.测试结果
首先我们需要创建测试用例,然后利用加载器讲用例加载到测试套件中,并创建一个执行器,
去执行测试条件中的所有用例。
它可以帮我们进行管理用例,统计加载执行用例,批量跑用例。
12.4 Unittest框架有哪些组件?
test fixture(测试固件):
包含一个 Setup()方法/函数,tearDown()方法/函数,用例执行之前都会先执行 Setup()方法/函数主要是完成一些准备初始化的工作,比如创建临时的数据库,文件和目录,用例数据读取,浏览器的打开等,用例执行完成之后,会执行 tearDown()方法/函数,完成一些清理回收的工作,比如数据库断开,关闭浏览器。
(1)比如说在这个测试用例中需要访问数据库,那么可以在seUp()中建立数据库连接以及进行一些初始化,在 tearDown()中清除在数据库中产生的数据,然后关闭连接,注意 tear Down的过程很重要,要为以后的 TestCase留下一个干净的环境。
test case(测试用例):
什么是测试用例呢?
就是一个完整的测试流程包括测试前准备环境的搭建( setUp),以及测试后环境的还原( tearDown),还有包括用例方法,每个用例方法都必须要以test开头。
test suite(测试套件):
多个测试用例的集合就是 suite,一个 suite可以包含多个测试用例,也可以嵌套suite.可以通过 addTest()方法手动增加 TestCase,也可通过 TestLoader自动添加TestCase, TestLoader在添加用例时,会没有顺序。
test runner(运行器):
用来执行测试套件中测试用例的,最终执行完成之后会生成一个测试结果。
TestLoader(加载器):用来加载用例,把用例加载到测试套件中
Test Result(测试结果):包括运行了多少测试用例,成功了多少,失败了多少等信息。
https://mp.weixin.qq.com/s/nLyx6PEOqGCEnF-1kc-IfAhttp://点我免费领取全套软件测试自动化测试资料
12.5 Unittest框架如何使用?
1. 导包
import unittest
from selenium import webdriver
import ddt
- 定义一个类继承 unittest.TestCase基类
- 重写 setUp(),tearDown()方法
setUp()方法实现一个初始化的准备工作,比如,实例化 webdriver对象,对 driver进行初始化配置,连接数据库.....
tearDown()方法实现释放资源的任务。
- 编写用例方法,用例方法必须以test开头
5. Unittest如何去运行多个文件或者整个目录
因为我们用例全部是放在 test_case目录下统一管理的,基本每个某块都是一个.py文件,要全量跑的话,需要调用 unittest.default.discover()函数,指定用例目录的路径,加载所有的.py文件,它会自动创建测试套件,井把用例加入测试套件中,然后利用unittest.TestRunner()创建一个执行器利用这个执行器去运行测试雷件中的所有用例。
12.6 如何生成自动化测试报告?
我们当时用的是 HtmIReport这个库来生成自动化测试报告的。
- 安装
pip install HTMLReport
- 使用方法
# 测试用例执行器
runner= HTMLReport.TestRunner(
Report_file_name='test’, #报告文件名,如果未赋值,将采用"test+时间戳"
Output_path='report’, #保存文件夹名,默认" report"
tite=’测试报告’, #报告标题,默认"测试报告"
description=’无测试描述’ #报告描述,默认"测试描述"
Thread_count=1, #并发线程数量(无序执行测试),默认数量 1
Thread_start_wait=3, #各线程启动延迟,默认0s
Sequential_execution=False. #是否按照套件添加( addTests)顺序执行,
#会等待一个 addTests执行完成,再执行下一个,默认 False
#如果用例中存在 tearDownClass,建议设置为True,
#否则 tearDownClass将会在所有用例线程执行完后才会执行
# lang='e
lang='cn' #支持中文与英文,默认中文
)
#执行测试用例套件
runner.run(suite)
十三、 Pytest框架
13.1 自动化测试使用的那些库
1、selenium库 --web自动化测试工具 2. priest框架,运行用例 3. random随机,概率
4. xlrd --获取exell表数据 5. pymysql调用数据库 6. pytest-html --生成html文件
7. yagmanil --发送邮件 8. time-时间 9. Select包--下拉框 10. Keys 模拟键盘操作
11. Webdriverwait智能等待 12. Action Chains模拟鼠标操作
13.2 pytest框架如何使用
1. 安装 pytest框架
pip install pytest、在 pycham里安装 pytest、源码安装
2. 导入 pytest: import pytest
3. 编写主函数,后续代码,后面运行: if_name_=='_main_’;
4. 执行文件:
pytest.main(["要运行的文件的相对路径"]) ----例如(["../test_case/test_01.py"])
13.3 pytest框架如何去生成测试报告
1. 要安装 pytest-html
pip install pytest-html、在 pycharm里安装 pytest-html、或者源码安装
2. 在运行用例模块中执行用例时添加html路径: pytest.main(["要运行的文件的路径","--html=. /report/report.html"])
13.4 bytes如何去运行多个文件或者整个目录
1. 执行多个文件
pytest.main(["../test_case/test_01","../test_case/test_login"])
2. 执行整个目录
pytest.main(["../test_case/"]) --列表里是目录路径
13.5 pytest框架如何去运行上次失败的测试用例
1. pytest --lf运行用例的路径 --- 只运行上次失败的用例
2. pytest --ff运行用例的路径 --- 运行上次所有的用例,优先运行上次失败的用例
(如果没有写路径,则执行当前目录下所有的用例)