- 博客(107)
- 资源 (3)
- 收藏
- 关注
原创 使用BeautifulSoup 4和Pillow合并网页图片到一个PDF:一种高效的方式来处理网页图像
2、将文件名中编号规整,保持3位数字。名称为“幻灯片2.JPG”的会显示在“幻灯片11.JPG”的后面,需要将“幻灯片2.JPG’和”幻灯片11.JPG“规整为"幻灯片002.JPG"和”幻灯片011.JPG“)(本处实现,发现下载图片文件名为src下文件名,但alt属性中文件名更便于理解和排序)运行merge_img2pdf.py文件,将tmp目录下所有图片合并成一个pdf文件。运行read_html.py文件,标准化tmp目录下图片文件名。通过分析页面图片,所有有效图片都是后缀为JPG格式的图片。
2023-12-11 14:07:43 387
原创 30、pytest入门内容回顾
讲解了pytest的概述,安装前的准备工作(python,pycharm,pytest),运行方式(命令行),断言(assert),测试用例组织方式(推荐使用类方式组织)调用fixture及使用fixture,pytest最强大的功能;生成友好的测试报告allure。 汇总了常用的pytest技能点,欢迎留言及提问,后续会继续补充pytest相关内容。基于以上开始及入门技能点,结合实际测试工作中用到的功能,获取鉴权、命令行选择测试内容。升华,推荐自动化测试项目结构,优雅的编写测试用例并方便的进行维护。
2023-12-05 15:40:20 607
原创 29、pytest自动化测试项目结构
一个好的项目结构可以提高测试效率和代码可读性,方便测试人员进行管理和维护。运行用例时,可以直接在项目根目录下运行。
2023-12-05 15:20:10 578
原创 28、pytest实战:获取多用户鉴权
用例文件夹下的conftest.py中实现获取token的fixture,测试用例中直接获取该fixture,并根据用户名称来使用。fixtrue设置作用域为包级,只能包内测试用例执行结束后,才会销毁,可以保证一次测试,只请求了一次token。测试过程中有用户体系,例如包括管理员、商家、用户角色,不同测试用例需要使用不同角色来操作,操作权限根据用户的鉴权来判断实现。__init__.py全是空文件,无内容。
2023-12-05 14:53:04 539
原创 27、pytest实战:一套用例同时验证生产、测试两个环境
利用mark标志可用于筛选哪些用例在测试环境运行,哪些在生产环境运行;利用python获取命令行功能判断出是希望在测试执行还是生产执行,更新变量状态;全局变量保存两套环境配置信息,根据命令行参数进行筛选。执行测试环境用例并打印输出。执行生产环境用例并打印输出。
2023-12-05 11:17:58 352
原创 26、pytest使用allure解读
1、allure是定义分类层级,由大到小依次为“epic”(迭代)、“feature”(需求),“story”(场景),“title”(功能点),可以根据实际项目使用全部或部分。2、每个测试用例中增加step描述,展示执行步骤的含义,既可以向项目干系人体现测试思路,又可以在测试出问题后清晰向他人描述问题。
2023-12-05 10:36:23 518
原创 25、pytest的测试报告插件allure
在这里,你将找到使用allure创建、定制和理解测试报告所需的一切。开始让你的测试沟通更清晰,更有影响力。Allure Report是一个实用程序,它处理由兼容的测试框架收集的测试结果并生成HTML报告。
2023-12-05 10:03:03 406
原创 24、pytest通过xfail将测试函数标记为预期失败
测试将运行,但失败时不会报告回溯。相反,终端报告将会在“预期失败(XFAIL)或”意外通过“(XPASS)部分中列出来,或者,你也可以在测试或其它setup函数中强制将测试标记为XFAIL。使用reason参数,标记失败原因。查看测试报告时将更直观。你可以使用xfail标记来表示你希望测试失败。
2023-12-05 09:20:51 307
原创 23、pytest通过skip跳过测试用例
常见的例子是跳过非windows平台上的仅窗口测试,或者跳过依赖于当前不可用的外部资源(例如数据库)的测试。对于较大的测试套件,一个好主意是使用一个文件来定义标记,然后在整个测试套件中始终应用这些标记。你可以标记无法在某些平台上运行的测试函数或你预计会失败的测试函数,以便pytest可以相应地处理它们并显示测试会话的摘要,同时保持测试套件的绿色。保持测试报告绿色,合理的将失败用例用skip和xfail标记出来,也是一种与产品、研发之间好的沟通方式。
2023-12-05 09:19:26 248
原创 22、pytest多个参数化的组合
由pytest自由构造多组参数的笛卡尔积组合时,可以使用这种方式。但使用时要注意避免参数爆炸,太多或穷尽的参数可以会减慢pytest的执行。这将运行测试,将参数设置为x=0/y=2,x=1/y=2,x=0/y=3和x=1/y=3,按照装饰器的顺序耗尽参数。要获得多个参数化参数的所有组合,你可以堆叠参数化装饰器。
2023-12-05 09:17:54 510
原创 21、pytest参数化中标记单独的测试用例
测试过程中,对已提Bug的问题单可使用这种方式标记,并最终体现在测试报告中。可以在参数化标记单独的测试实例,例如使用内置的mark.xfail。先前导致失败的一个参数集现在显示为xfailed(预计会失败)测试。
2023-12-05 09:16:46 104
原创 20、pytest中的参数化
测试函数相同,只是传入参数不同,就可以用这种方法扩展测试用例。特别是针对列表的搜索功能,同一个搜索函数,但是存在多个搜索项。内置的pytest.mark.parametrize装饰器允许对测试函数的参数进行参数化。请注意,你也可以在类或模块上使用参数化标记,类中的函数将调用带有参数集内容。要将模块中的所有测试参数化,可以将其赋值给pytestmark全局变量。
2023-12-05 09:15:28 315
原创 19、pytest通过mark标记测试函数
对测试类型进行分类,使用自定义marks很方便,由于测试环境、生产环境能执行的用例不同,只需要将用例增加prod、test、或同时增加prod和test,就可以通过marks来决定执行哪些用例。创建自定义标记或将标记应用于整个测试类或模块都非常容易。这些标记可以被插件使用,也通过用于使用-m选项在命令行上选择测试。通过使用pytest.mark帮助器,你可以轻松地在测试函数上设置元数据。你可以在API参考中找到内置标记的完整列表。
2023-12-05 09:13:56 431
原创 18、pytest中fixture的作用域
需要网络访问的fixture取决于连接性,并且创建起来通常非常耗时。我们可以向@pytest装饰器中添加一个scope="module"参数,这将导致smtp_connection fixture函数在每个测试模块中只调用一次。因此,测试模块中的多个测试函数将各自接收相同的smtp_connection fixture实例,从而节省时间。根据变量希望的生命周期来选择fixture的scope;必要的时候把全局fixture写入项目根目录下conftest.py文件中。
2023-12-05 09:12:50 418
原创 17、pytest自动使用fixture
有时,你可能希望拥有一个(甚至几个)你知道所有测试都将依赖的fixture,autouse fixture是一种方便的方法,可以使所有测试自动请求它位。这可以减少大量冗余请求,甚至可以提供更高级的fixture使用。在这个例子中,append_first fixture是一个自定义fixture,因为它是自动请求的,所有两个测试都受到它的影响,即使两个测试都没有请求它。我们可以通过向fixture的装饰器传递autouse=True来使fixture成为autouse fixture。
2023-12-05 09:11:32 356
原创 16、fixture的其它使用特点
一个fixture或测试函数可以一次请求多个fixture,不同fixture用于实现不同功能,例如,一个fixture用于获取token,其它fixture用于获取搜索项,两个fixture共同为测试一个搜索功能提供测试前提数据;如果在测试期间,每请求fixture就执行一次,这个测试会失败,因为append_first和test_string_only将order作为一个空列表,但是order缓存了其返回值,append_first和test_string_only都引用了同一个对象。
2023-12-05 09:05:46 42
原创 15、pytest的fixture调用fixture
fixture可以调用其它fixture;在登录类应用时比较方便,创建一个获取token的fixture,其它测试函数重复使用这个fixture,获取鉴权。pytest的fixture系统如此强大的原因之一是,它使我们能够定义一个可以反复重用的通用步骤,就像使用普通函数一样。两个不同的测试可以请求相同的fixture,并让pytest从该fixture为每个测试提供各自的结果。我们可以使用这个系统来确保每个测试都获得自己的新一批数据,并且从一个干净的状态开始,这样它就可以提供一致的、可重复的结果。
2023-12-04 17:38:10 772
原创 14、pytest像用参数一样使用fixture
当pytest运行测试时,它会查看该测试函数中的参数,然后搜索与这些参数名称相同的fixture。一旦pytest找到它们,它就运行这些fixture,捕获它们返回的内容,并将这些对象作为参数传递给测试函数。fixture是pytest最强大的功能之一,随着深入接触,会发现fixture的便捷之处。在基本级别上,测试函数通过将它们声明为参数来请求它们所需的fixture。
2023-12-04 17:17:38 346
原创 13、pytest为失败的断言定义自己的解释
假如没有自定义解释,则返回None,否则返回字符串列表。字符串将由换行符连接,但字符串中的任何换行符都将被输入。除了第一行之外的所有内容都将略微缩进,目的是让第一行作为摘要。可以通过实现pytest_assertrepr_compare钩子来添加自己的详细解释。通过实现钩子函数,可以自定义展示详细解释。比assert后的描述信息更灵活。返回失败断言表达式中比较的解释。
2023-12-04 17:05:29 290
原创 11、pytest断言预期异常
使用pytest.raises()在测试自己的代码有意引发的异常的情况下会更好;带有检查函数的@pytest.mark.xfail更适合记录未修复的Bug或依赖项中的Bug。
2023-12-04 16:43:09 414
原创 10、pytest通过assert进行断言
pytest允许你使用标准python断言来验证测试中的期望和值,断言函数返回某个值,如果这个断言失败,你将看到函数调用的返回值。pytest支持显示最常见的子表达式的值,包括调用、属性、比较、二进制和一元操作符。这允许你使用自己习惯的python结果,同时在回溯中展示对应信息。测试全过程:准备测试数据,发出请求,比对结果与期望值,清空测试数据。第三步中可以使用assert,进行常用数值、字符串、日期等的比对及校验;如果在断言中指定消息,回溯中,指定消息会被打印出来。
2023-12-04 16:26:55 198
原创 06、pytest将多个测试放在一个类中
在类中对测试进行分组时需要注意的是,每个测试都有一个唯一的类实例。让每个测试共享相同的类实例将非常不利于测试隔离,并会造成糟糕的测试实践。 程序开发过程由面向函数、面向对象,测试用例也可以通过面向对象进行设计,更好的感受pytest带来的便利。 一旦开发了多个测试,你可能希望将它们分组到一个类中。pytest可以很容易地创建一个包含多个测试的类。 确保为类添加Test前缀,否则将跳过该类。
2023-12-04 15:22:30 369
原创 05、pytest断言确定的异常
标准python raise函数可产生异常。pytest.raises可以断言某个异常会发现。异常发生了,用例执行成功;异常未发生,用例执行失败。 测试用例包括正向用例与反向用例,反向用例就是验证各种异常场景,假如异常场景预期就会产生异常,就可以使用pytest.raises来验证它。
2023-12-04 15:20:47 256
原创 04、pytest运行多个测试用例
项目测试中,一个项目编写一个测试目录,每个大模块编写一个test_.py文件,每个模块中每条测试用例编写一个test_函数,每次回归时,在测试目录下执行pytest,并查看运行效果。 pytest将运行当前目录及其子目录中所有形式为test_*.py或*_test.py的文件。更一般地说,它遵循标准的测试发现规则。
2023-12-04 14:57:47 1101
原创 01、pytest:帮助你编写更好的程序
pytest框架可以很容易地编写小型、可读的测试,并且可以扩展以支持应用程序和库的复杂功能测试。使用pytest至少需要安装Python3.7+或PyPy3。PyPI包名称为pytest。
2023-12-04 14:09:44 353
原创 Docker+Jmeter+InfluxDB+Grafana优化压测报告
3.2、配置“后端监听器”,1、influxdbUrl要替换为Docker地址,db要使用influxdb数据库名,application要设置为order(后面步骤配置grafana中将要使用)登录http://<Docker中URL>:3000/login,登录grafana网页,用户名:admin,密码:admin。在线获取:docker pull grafana/grafana。本地安装:docker load < grafana.tar。2、安装并配置influxDB。4、安装grafana。
2023-11-27 14:15:14 520
原创 CentOS 7 安装Python3
CentOS 7 安装python1、前置条件1.1、安装xz(用于解压下载下来的python安装包) yum -y install gcc automake autoconf libtool make # 安装xz依赖项 wget https://tukaani.org/xz/xz-5.2.5.tar.gz # 下载xz软件包 tar -xvf xz-5.2.5.tar.gz cd xz-5.2.5 mkdir /opt/xz ./configure --prefix=
2021-04-25 19:03:56 182
原创 Win10 查看wifi网络密码
cmd命令行方式netsh wlan show profiles # 获取所有用户配置文件netsh wlan show profile name="wifi名称" key=clear # 查看对应wifi的密码信息win10页面操作方式1、控制面板2、网络和共享中心3、更改适配器设置4、右键Wlan,选择状态5、点击“无线属性”6、选中“安全”...
2021-04-16 18:10:20 357
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人