面经-软件测试面试常见面试题全套合集系列unittest框架面试题 pytest框架面试题 性能测试面试题 4-4

目录

前言:

十二、 Unittest框架

12.1  你们自动化用例是怎么管理的?

12.2  Web UI自动化都用到过哪些库?

12.3  Unittest框架的原理?

12.4  Unittest框架有哪些组件?

12.5   Unittest框架如何使用?

12.6  如何生成自动化测试报告?

十三、 Pytest框架

13.1  自动化测试使用的那些库

13.2   pytest框架如何使用

13.3  pytest框架如何去生成测试报告

13.4  bytes如何去运行多个文件或者整个目录

13.5  pytest框架如何去运行上次失败的测试用例

13.6  运行完成后,如何去自动发送邮件

13.7  fixture装饰器的作用与默认值

13.8  yield的作用是什么

13.9   pytest运行用例,用例命名规则有哪些?

13.10  allure报告生成

十四、性能测试

14.1  性能测试怎么测试

14.2  性能测试流程是怎么样的?

14.3  你们性能观察哪些指标,大概指标范围是怎么样的。

14.4  这个测试的环境配置,如转速度

14.5  性能测试计划有哪些内容

14.6  有没有写过性能测试报告,具体包括哪些内容

14.7  什么是内存泄漏,什么是内存溢出?

14.8  吞吐量,吞吐率

14.9  吞吐量与吞吐率跟负载有什么关系?

14.10  当你服务器满了之后,你们吞吐量和响应时间怎么变化的

14.11  你们的TPS的指标是什么估算的?

14.13  每人说一个项目接口,你设置多少并发

14.14  你们吞吐量是多少,响应时间是多少,你设置了多少井发?

14.15  做井发你们一般cpu和内存是多少?

14.16  有没有做过稳定性测试

14.17   5000个人抢购,只能50个人能抢到,你怎么设计并发数的

14.18  微信群里面发送红包,5000个人群,只能3000个人能抢到,你怎么设计并发数的峰值

14.19  20并发40次循环怎么做?

14.20  我想从200慢慢加载到300,到400怎么做

14.21  需要插入500条数据,你怎么插入

14.22  响应超时,你是怎么定位的

14.23  压测返回数据报错,你怎么去定位的

14.24  你理解的性能调优是什么?

14.25  如果要做万并发,你怎么做

14.26  如果用户并发要慢慢加载,你怎么设置的

14.27  并发用户数跟响应时间与吞吐的关系


前言:

写着写着发现好像4-4还没完全写完,哈哈哈哈哈难搞哦,后面还会继续写后续的,废话不多说直接开始正文

 Python自动化测试全栈+性能测试全栈+全套资料免费领取

十二、 Unittest框架

12.1  你们自动化用例是怎么管理的?

1. 所有用例都是放在 test_case的目录下的统一管理的。

2. 每个某块一个.py文件,数据独立放在excel表格中

3. 所有的具体用例脚本都是依据 unittest来编写的,利用ddt模型的装饰器来引用数据

  1. 然后跑用例这块,主要用的是 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.测试结果

首先我们需要创建测试用例,然后利用加载器讲用例加载到测试套件中,并创建一个执行器,

去执行测试条件中的所有用例。

它可以帮我们进行管理用例,统计加载执行用例,批量跑用例。

 Python自动化测试全栈+性能测试全栈+全套资料免费领取Python自动化测试全栈+性能测试全栈,全套资料-功能-接口-自动化-性能-测试开发-面试全套资料全套资料https://mp.weixin.qq.com/s/nLyx6PEOqGCEnF-1kc-IfA

 

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-IfAicon-default.png?t=M4ADhttp://点我免费领取全套软件测试自动化测试资料

12.5   Unittest框架如何使用?

1. 导包

import unittest

from selenium import webdriver

import ddt

  1. 定义一个类继承 unittest.TestCase基类
  2. 重写 setUp(),tearDown()方法

setUp()方法实现一个初始化的准备工作,比如,实例化 webdriver对象,对 driver进行初始化配置,连接数据库.....

tearDown()方法实现释放资源的任务。

  1. 编写用例方法,用例方法必须以test开头

5. Unittest如何去运行多个文件或者整个目录

因为我们用例全部是放在 test_case目录下统一管理的,基本每个某块都是一个.py文件,要全量跑的话,需要调用 unittest.default.discover()函数,指定用例目录的路径,加载所有的.py文件,它会自动创建测试套件,井把用例加入测试套件中,然后利用unittest.TestRunner()创建一个执行器利用这个执行器去运行测试雷件中的所有用例。

12.6  如何生成自动化测试报告?

我们当时用的是 HtmIReport这个库来生成自动化测试报告的。

  1. 安装

pip install HTMLReport

  1. 使用方法

# 测试用例执行器

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运行用例的路径 --- 运行上次所有的用例,优先运行上次失败的用例

(如果没有写路径,则执行当前目录下所有的用例)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值