python+pytest+allure+yaml架构,python自动化测试需要学什么
python+pytest+allure+yaml架构,python自动化测试需要学什么详细介绍
本文目录一览: Pytest-allure,为公司定制专属测试框架
Python安装:python.org/downloads
pycharm安装:https://www.jetbrains.com/pycharm/download
pytest安装:pip install -U pytest
所有的测试模块文件名都需要满足test_*.py格式或*_test.py格式。
在测试模块文件中,测试类以Test开头,并且不能带有 init 方法(注意:定义class时,需要以Test开头,不然pytest是不会去运行该class的)
在测试模类中,可以包含一个或多个test_开头的函数。
此时,在执行pytest命令时,会自动从当前目录及子目录中寻找符合上述约束的测试函数来执行。
命令行运行:在终端(Teminal,cmd,shell)里面直接执行pytest命令
会按默认的命名规则去找用例,并且执行
pycharm插件:pytest in xxx.py
一定只运行这一个py文件
按命名规则找用例执行
python执行:执行的py文件(一般是这样运行)
if __name__ == '__main__':
pytest.main(['-s'])
Allure 下载最新版本: https://github.com/allure-framework/allure2/releases
解压到非中文目录下
然后设置环境变量:
将allure/bin目录添加到path变量
重新打开cmd,运行allure --version
安装allure-pytest插件
pip install allure-pytest
创建项目或者包
创建脚本文件test-allure.py
修改运行方式为python运行
运行test-allure.py,会自动化生成测试报告
打开测试报告
注解说明
python自动化测试需要学什么
掌握自动化测试技术并能灵活应对不同的测试需求,Python自动化测试学习内容:
1-1 自动化测试基础
自动化测试概述
工具介绍及安装
常用命令
1-2 自动化测试环境搭建
Appium介绍及安装
Appium Capability配置介绍
Appium界面介绍
Appium简单使用
1-3 Appium 基础运用
1-4 yaml配置文件使用
1-5 单元测试框架unittest使用
1-6 日志文件
1-7 PO模式
1-8 数据驱动
1-9 关键字驱动
1-10 Pytest测试框架
1-11 Allure测试报告及邮件
1-12 Appium服务化
1-13 Jenkins持续集成
1-14 并发拓展
想成为一名合格的APP自动化测试工程师,必须学会使用Appium,并掌握测试代码编写,封装以及框架设计开发能力。学习移动端自动化测试技术,通过常见的企业实际测试场景解锁Appium框架工具的各项技术应用,并将项目测试贯穿于整个课程当中,实战如何运用PO思想、数据驱动、关键字驱动等核心技术实现移动端自动化测试框架的设计和开发,在实践中成长为一名企业真正需要的APP自动化测试工程师!
Python+pytest+allure的测试报告里怎么输出接口响应时长?
要在pytest和allure的测试报告中输出接口响应时长,可以使用pytest的fixture功能结合allure的step装饰器来实现。下面是一个示例代码:
在上面的示例代码中,我们首先定义了一个api_client的fixture,它返回一个requests.Session对象,用于发送API请求。然后,我们使用@pytest.mark.parametrize装饰器来参数化测试用例,每个测试用例都会发送不同的请求。
在测试用例函数中,我们使用allure.step装饰器来定义测试步骤。在发送请求后,我们使用response.elapsed.total_seconds()来获取响应时长,并使用allure.attach将其作为附件添加到测试报告中。
最后,我们使用assert语句来验证响应状态码是否为200。
运行测试后,你将在allure的测试报告中看到每个测试步骤的响应时长附件。
Python - pytest
目录
pytest是Python的单元测试框架,同自带的unittest框架类似,但pytest框架使用起来更简洁,效率更高。
pytest特点
安装
测试
在测试之前要做的准备
我的演示脚本处于这样一个的目录中:
踩坑:你创建的pytest脚本名称中不允许含有 . ,比如 1.简单上手.py ,这样会报错。当然,可以这么写 1-简单上手.py
demo1.py :
上例中,当我们在执行(就像Python解释器执行普通的Python脚本一样)测试用例的时候, pytest.main(["-s", "demo1.py"]) 中的传参需要是一个元组或者列表(我的pytest是5.2.2版本),之前的版本可能需要这么调用 pytest.main("-s demo1.py") ,传的参数是str的形式,至于你使用哪种,取决于报不报错:
遇到上述报错,就是参数需要一个列表或者元组的形式,而我们使用的是str形式。
上述代码正确的执行结果是这样的:
大致的信息就是告诉我们:
pytest.main(["-s", "demo1.py"])参数说明
除了上述的函数这种写法,也可以有用例类的写法:
用法跟unittest差不多,类名要以 Test 开头,并且其中的用例方法也要以 test 开头,然后执行也一样。
执行结果:
那么,你这个时候可能会问,我记得unittest中有setup和teardown的方法,难道pytest中没有嘛?你怎么提都不提?稳住,答案是有的。
接下来,我们来研究一下pytest中的setup和teardown的用法。
我们知道,在unittest中,setup和teardown可以在每个用例前后执行,也可以在所有的用例集执行前后执行。那么在pytest中,有以下几种情况:
来一一看看各自的用法。
模块级别setup_module/teardown_module
执行结果:
类级别的setup_class/teardown_class
执行结果:
类中方法级别的setup_method/teardown_method
执行结果:
函数级别的setup_function/teardown_function
执行结果:
小结
该脚本有多种运行方式,如果处于PyCharm环境,可以使用右键或者点击运行按钮运行,也就是在pytest中的主函数中运行:
也可以在命令行中运行:
这种方式,跟使用Python解释器执行Python脚本没有什么两样。也可以如下面这么执行:
当然,还有一种是使用配置文件运行,来看看怎么用。
在项目的根目录下,我们可以建立一个 pytest.ini 文件,在这个文件中,我们可以实现相关的配置:
那这个配置文件中的各项都是什么意思呢?
首先, pytest.ini 文件必须位于项目的根目录,而且也必须叫做 pytest.ini 。
其他的参数:
OK,来个示例。
首先,(详细目录参考开头的目录结构)在 scripts/test_case_01.py 中:
在 scripts/test_case_dir1/test_case02.py 中:
那么,在不同的目录或者文件中,共有5个用例将被执行,而结果则是两个失败三个成功。来执行验证一下,因为有了配置文件,我们在终端中(前提是在项目的根目录),直接输入 pytest 即可。
由执行结果可以发现, 2 failed, 3 passed ,跟我们的预期一致。
后续执行相关配置都来自配置文件,如果更改,会有相应说明,终端都是直接使用 pytest 执行。
我们知道在unittest中,跳过用例可以用 skip ,那么这同样是适用于pytest。
来看怎么使用:
跳过用例,我们使用 @pytest.mark.skipif(condition, reason) :
然后将它装饰在需要被跳过用例的的函数上面。
效果如下:
上例执行结果相对详细,因为我们在配置文件中为 addopts 增加了 -v ,之前的示例结果中,没有加! 另外,此时,在输出的控制台中, 还无法打印出 reason 信息,如果需要打印,则可以在配置文件中的 addopts 参数的 -s 变为 -rs :
如果我们事先知道测试函数会执行失败,但又不想直接跳过,而是希望显示的提示。
Pytest 使用 pytest.mark.xfail 实现预见错误功能::
需要掌握的必传参数的是:
那么关于预期失败的几种情况需要了解一下:
结果如下:
pytest 使用 x 表示预见的失败(XFAIL)。
如果预见的是失败,但实际运行测试却成功通过,pytest 使用 X 进行标记(XPASS)。
而在预期失败的两种情况中,我们不希望出现预期失败,结果却执行成功了的情况出现,因为跟我们想的不一样嘛,我预期这条用例失败,那这条用例就应该执行失败才对,你虽然执行成功了,但跟我想的不一样,你照样是失败的!
所以,我们需要将预期失败,结果却执行成功了的用例标记为执行失败,可以在 pytest.ini 文件中,加入:
这样就就把上述的情况标记为执行失败了。
pytest身为强大的单元测试框架,那么同样支持DDT数据驱动测试的概念。也就是当对一个测试函数进行测试时,通常会给函数传递多组参数。比如测试账号登陆,我们需要模拟各种千奇百怪的账号密码。
当然,我们可以把这些参数写在测试函数内部进行遍历。不过虽然参数众多,但仍然是一个测试,当某组参数导致断言失败,测试也就终止了。
通过异常捕获,我们可以保证程所有参数完整执行,但要分析测试结果就需要做不少额外的工作。
在 pytest 中,我们有更好的解决方法,就是参数化测试,即每组参数都独立执行一次测试。使用的工具就是 pytest.mark.parametrize(argnames, argvalues) 。
使用就是以装饰器的形式使用。
只有一个参数的测试用例
来看(重要部分)结果::
可以看到,列表内的每个手机号,都是一条测试用例。
多个参数的测试用例
(重要部分)结果:
可以看到,每一个手机号与每一个验证码都组合一起执行了,这样就执行了4次。那么如果有很多个组合的话,用例数将会更多。我们希望手机号与验证码一一对应组合,也就是只执行两次,怎么搞呢?
在多参数情况下,多个参数名是以 , 分割的字符串。参数值是列表嵌套的形式组成的。
固件(Fixture)是一些函数,pytest 会在执行测试函数之前(或之后)加载运行它们,也称测试夹具。
我们可以利用固件做任何事情,其中最常见的可能就是数据库的初始连接和最后关闭操作。
Pytest 使用 pytest.fixture() 定义固件,下面是最简单的固件,访问主页前必须先登录:
结果:
在之前的示例中,你可能会觉得,这跟之前的setup和teardown的功能也类似呀,但是,fixture相对于setup和teardown来说更灵活。pytest通过 scope 参数来控制固件的使用范围,也就是作用域。
比如之前的login固件,可以指定它的作用域:
很多时候需要在测试前进行预处理(如新建数据库连接),并在测试完成进行清理(关闭数据库连接)。
当有大量重复的这类操作,最佳实践是使用固件来自动化所有预处理和后处理。
Pytest 使用 yield 关键词将固件分为两部分, yield 之前的代码属于预处理,会在测试前执行; yield 之后的代码属于后处理,将在测试完成后执行。
以下测试模拟数据库查询,使用固件来模拟数据库的连接关闭:
结果:
可以看到在两个测试用例执行前后都有预处理和后处理。
pytest中还有非常多的插件供我们使用,我们来介绍几个常用的。
先来看一个重要的,那就是生成测试用例报告。
想要生成测试报告,首先要有下载,才能使用。
下载
如果下载失败,可以使用PyCharm下载,怎么用PyCharm下载这里无需多言了吧。
使用
在配置文件中,添加参数:
效果很不错吧!
没完,看我大招
Allure框架是一个灵活的轻量级多语言测试报告工具,它不仅以web的方式展示了简洁的测试结果,而且允许参与开发过程的每个人从日常执行的测试中最大限度的提取有用信息。 从开发人员(dev,developer)和质量保证人员(QA,Quality Assurance)的角度来看,Allure报告简化了常见缺陷的统计:失败的测试可以分为bug和被中断的测试,还可以配置日志、步骤、fixture、附件、计时、执行 历史 以及与TMS和BUG管理系统集成,所以,通过以上配置,所有负责的开发人员和测试人员可以尽可能的掌握测试信息。 从管理者的角度来看,Allure提供了一个清晰的“大图”,其中包括已覆盖的特性、缺陷聚集的位置、执行时间轴的外观以及许多其他方便的事情。allure的模块化和可扩展性保证了我们总是能够对某些东西进行微调。
少扯点,来看看怎么使用。
Python的pytest中allure下载
但由于这个 allure-pytest 插件生成的测试报告不是 html 类型的,我们还需要使用allure工具再“加工”一下。所以说,我们还需要下载这个allure工具。
allure工具下载
在现在allure工具之前,它依赖Java环境,我们还需要先配置Java环境。
注意,如果你的电脑已经有了Java环境,就无需重新配置了。
配置完了Java环境,我们再来下载allure工具,我这里直接给出了百度云盘链接,你也可以去其他链接中自行下载:
下载并解压好了allure工具包之后,还需要将allure包内的 bin 目录添加到系统的环境变量中。
完事后打开你的终端测试:
返回了版本号说明安装成功。
使用
一般使用allure要经历几个步骤:
来看配置 pytest.ini :
就是 --alluredir ./report/result 参数。
在终端中输入 pytest 正常执行测试用例即可:
执行完毕后,在项目的根目下,会自动生成一个 report 目录,这个目录下有:
接下来需要使用allure工具来生成HTML报告。
此时我们在终端(如果是windows平台,就是cmd),路径是项目的根目录,执行下面的命令。
PS:我在pycharm中的terminal输入allure提示'allure' 不是内部或外部命令,也不是可运行的程序或批处理文件。但windows的终端没有问题。
命令的意思是,根据 reportresult 目录中的数据(这些数据是运行pytest后产生的)。在 report 目录下新建一个 allure_html 目录,而这个目录内有 index.html 才是最终的allure版本的HTML报告;如果你是重复执行的话,使用 --clean 清除之前的报告。
结果很漂亮:
allure open 默认的,allure报告需要HTTP服务器来打开,一般我们可以通过pycharm来完成,另外一种情况就是通过allure自带的open命令来完成。
allure的其他用法 当然,故事还是没有完!在使用allure生成报告的时候,在编写用例阶段,还可以有一些参数可以使用:
allure.title与allure.description
feature和story
由上图可以看到,不同的用例被分为不同的功能中。
allure.severity
allure.severity 用来标识测试用例或者测试类的级别,分为blocker,critical,normal,minor,trivial5个级别。
severity的默认级别是normal,所以上面的用例5可以不添加装饰器了。
allure.dynamic
在之前,用例的执行顺序是从上到下依次执行:
正如上例的执行顺序是 3 1 2 。
现在,来看看我们如何手动控制多个用例的执行顺序,这里也依赖一个插件。
下载
使用
手动控制用例执行顺序的方法是在给各用例添加一个装饰器:
那么, 现在的执行顺序是 2 1 3 ,按照order指定的排序执行的。
如果有人较劲传个0或者负数啥的,那么它们的排序关系应该是这样的:
失败重试意思是指定某个用例执行失败可以重新运行。
下载
使用
需要在 pytest.ini 文件中, 配置:
给 addopts 字段新增(其他原有保持不变) --reruns=3 字段,这样如果有用例执行失败,则再次执行,尝试3次。
来看示例:
结果:
我们也可以从用例报告中看出重试的结果:
上面演示了用例失败了,然后重新执行多少次都没有成功,这是一种情况。
接下来,来看另一种情况,那就是用例执行失败,重新执行次数内通过了,那么剩余的重新执行的次数将不再执行。
通过 random 模块帮助我们演示出在某次执行中出现失败的情况,而在重新执行的时候,会出现成功的情况,看结果:
可以看到,用例 02 重新执行了一次就成功了,剩余的两次执行就终止了。
一条一条用例的执行,肯定会很慢,来看如何并发的执行测试用例,当然这需要相应的插件。
下载
使用
在配置文件中添加:
就是这个 -n=auto :
并发的配置可以写在配置文件中,然后其他正常的执行用例脚本即可。另外一种就是在终端中指定,先来看示例:
结果:
pytest-sugar 改变了 pytest 的默认外观,添加了一个进度条,并立即显示失败的测试。它不需要配置,只需 下载插件即可,用 pytest 运行测试,来享受更漂亮、更有用的输出。
下载
其他照旧执行用例即可。
pytest-cov 在 pytest 中增加了覆盖率支持,来显示哪些代码行已经测试过,哪些还没有。它还将包括项目的测试覆盖率。
下载
使用
在配置文件中:
也就是配置 --cov=./scripts ,这样,它就会统计所有 scripts 目录下所有符合规则的脚本的测试覆盖率。
执行的话,就照常执行就行。
结果:
更多插件参考:https://zhuanlan.zhihu.com/p/50317866
有的时候,在 pytest.ini 中配置了 pytest-html 和 allure 插件之后,执行后报错:
出现了这个报错,检查你配置的解释器中是否存在 pytest-html 和 allure-pytest 这两个模块。如果是使用的pycharm ide,那么你除了检查settings中的解释器配置之外,还需要保证运行脚本的编辑器配置是否跟settings中配置一致。
pytest测试框架-数据驱动 yamlexcelcsvjson
测试驱动在自动化测试中的应用场景:
实现读yaml文件,先创建env.yml文件配置测试数据
结果示例:
常用的读取方式有:xlrd、xlwings、pandas、openpyxl
软件测试框架之unittest与pytest的对比-
这篇 文章 是关于 自动化测试 框架的,算是一种传统的 测试框架 与新测试框架的一种对比吧( unittest 与pytest)。如果正在学习自动化测试的小伙伴一定不要错过这篇文章了。
Unittest
unittest是 python 标准库,自带的 单元测试 框架,有时候也被称为PyUnit。类似于java的 JUnit 。
Pytest
pytest是python第三方单元测试库,功能非常的丰富,也比较成熟,比unittest更简洁方便。
下面会从是否需要安装,用例编写规则,用例分类执行,前置和后置,参数化,断言,报告,是否有失败重跑机制等多维度来分析unittest与pytest测试框架的区别;
一、是否需要安装
Unittest是标准库,所以是不需要安装的。
Pytest是第三方库,所以使用前需要安装:pip install pytest
二、用例编写规则
1、Unittest
· 首先需要导入unittest(import unittest)
· 测试类必须继承unittest.TestCase
· 测试方法必须以”test_”开头
· 测试类必须要有unittest.main()方法
2、Pytest
· 测试文件必须以”test_”开头或”_test”结尾
· 测试方法必须要”test_”开头
· 测试类的命名要以”Test”开头
· 运行不需要main方法
三、用例分类执行
1、Unittest
默认执行的是全部的 测试用例 ,但也可以通过加载testsuit执行部分测试用例
2、Pytest
通过@pytest.mark来标记类和方法,pytest.main加入参数(“-m”)只运行标记的类和方法
四、用例的前置和后置
1、Unittest
unittest提供了setUp/tearDown,在每个用例运行前执行一次,运行结束后执行一次。
SetUpClass和tearDownClass,用例执行前,用例执行结束后,只运行一次。
2、Pytest
pytest提供了模块级,类级,方法级等setup/teardown,比unittest的setUp/tearDown要更丰富灵活。
· 模块级(setup_module/teardown_module)开始于模块始末,全局的,整个模块开只运行一次,优先于测试用例。
· 函数级(setup_function/teardown_function)只对函数用例生效(不在类中)
· 类级(setup_class/teardown_class)只在类中前后运行一次(在类中),只针对此类生效
· 方法级(setup_method/teardown_method)开始于方法始末(在类中),定义在类里面,每个用例都执行一次
五、参数化
1、Unittest
需要依赖DDT库。
2、Pytest
使用@pytest.mark.parametrize装饰器。
六、断言
1、Unittest
unittest提供了很多断言方式。
如:assertEqual、assertIn、assertTrue、assertFalse
2、Pytest
pytest提供assert表达式,简单,方便。
七、报告
1、Unittest
unittest使用HTMLTestRunnerNew库
2、Pytest
pytest有pytest-HTML、allure插件
八、失败是否重跑
1、Unittest
unittest没有提供这个功能
2、Pytest
Pytest通过pytest-rerunfailures插件是支持用例执行失败重跑的,
好了,分析完unittest和pytest它们的区别以后,咱们再来做一个简单的总结:
Unittest和Pytest这两个都属于python的单元测试框架,也是目前用的比较多的自动化测试框架。
Unittest呢是Python自带的,比较传统的测试框架,提供的插件少,用例格式比较复杂。Pytest相对来说,更加简单方便 ,兼容性比较强,插件也很丰富。用例出错了还可以重跑,非常的灵活,效率要比Unittest更高。
Httprunner3.x的使用
https://docs.httprunner.org/
HttpRunner v3.x支持三种测试用例格式pytest,YAML和JSON。强烈建议以pytest格式而不是以前的YAML/JSON格式编写和维护测试用例
格式关系如下图所示:
1.安装httprunner最新版本
httprunner3,要求python>=3.6,<4.0
pip3 install httprunner
pip3 install -U httprunner
pip3 install -U git+https://github.com/HttpRunner/HttpRunner.git@master
安装HttpRunner后,系统将添加5个命令。
httprunner:主命令,用于所有功能
hrun:的别名httprunner run,用于运行YAML / JSON / pytest测试用例
hmake:的别名httprunner make,用于将YAML / JSON测试用例转换为pytest文件
har2case:的别名httprunner har2case,用于将HAR转换为YAML / JSON测试用例
locusts:用于对locusts进行负载测试
2.创建新项目
httprunner startproject -h
D:\work\wy_only\httprunnerDemo>httprunner startproject -h
usage: httprunner startproject [-h] [project_name]
positional arguments:
project_name Specify new project name.
optional arguments:
-h, --help show this help message and exit
创建项目只需要一个参数(项目名称)
如: httprunner startproject httprunnerDemo
文件类型选择为.har后缀。
使用har2case命令用法
D:\work\wy_only\httprunnerDemo>har2case -h
usage: har2case har2case [-h] [-2y] [-2j] [--filter FILTER]
[--exclude EXCLUDE]
[har_source_file]
positional arguments:
har_source_file Specify HAR source file
optional arguments:
-h, --help show this help message and exit
-2y, --to-yml, --to-yaml
Convert to YAML format, if not specified, convert to
pytest format by default.
-2j, --to-json Convert to JSON format, if not specified, convert to
pytest format by default.
--filter FILTER Specify filter keyword, only url include filter string
will be converted.
--exclude EXCLUDE Specify exclude keyword, url that includes exclude
string will be ignored, multiple keywords can be
joined with '|'
使用har2case命令将har文件转化为json/yml/pytest文件
har2case ./har/dial.har -2y —生成dial.yml
har2case ./har/dial.har -2j —生成dial.json
har2case ./har/dial.har —生成dial_test.py
由于HttpRunner 3.0.7以后的版本,har2case默认情况下会将HAR文件转换为pytest
运行测试用例
注意,hrun是的命令别名httprunner run,它们具有相同的作用。
hrun = httprunner run
hrun = make + pytest
运行命令等价:
$ hrun ./testcases/login_test.py
$ pytest ./testcases/login_test.py
$ hrun ./testcases/login.yml
参数驱动
主要讲解CSV格式,通过parameters关键字,参数列表中间加“-”串行。${P(CSV文件相对路径)}
config:
name: "business type info test"
variables:
username: "admin"
password: "2wsx@WSX"
parameters:
ids-combineNe-realNeType-slNeType: {P(data/base_ne/base_ne_ids.csv)}
base_url: " http://192.xxx.xxx.xxx:8080 "
verify: False
参数使用情况
CSV文件格式如下:
ids,combineNe,realNeType,slNeType
1,eNode/MME,MME,eNode
2,gNode/AMF,AMF,gNode
3,PGW/PBC,PBC,PGW
4,PSBC/I-CSF,I-CSF,PSBC
5,S-CSC/HSS,HSS,S-CSC
6,S-CSC/AS,AS,S-CSC
7,eNode/SGW,SGW,eNode
用例执行时,会运行七次。
allure报告
Httprunner提供pytest默认的报告格式
hrun ./testcases/login.yml --html=reports/demo.html
运行用例:
pytest testcases/base_ne/base_ne_ids.pytest --alluredir reports (最终报告可以看到运行日志)
hrun testcases/base_ne --alluredir=reports (没有运行日志)
生成报告命令:
allure generate reports
allure generate reports -o allure-report --clean
-o allure-report:是指定清空测试报告的文件
–clean:是为了清空已有的测试报告
python导出html文件失败怎么办
1、首先我们需要先安装pytest和allure。2、其次执行代码后没有生成html文件,而且提示javajdk路径错误。3、最后如果无法使用chrome浏览器打开,可以使用firefox浏览器打开。
大学学python好就业吗
还可以,Python因语法简洁、功能强大、上手简单特点广泛应用于网站开发、爬虫、数据分析、人工智能、大数据开发、自动化运维、自动化测试、游戏开发等领域。不过现在企业对Python应聘要求也越来越高,不像在18,19年那会,学的人少,Python这块需求缺口巨大,现在Python在一线城市对学历要求基本上统招大专以上学历了,要求掌握的技能也越来越多;竞争也越来越大了。好好努力,学的好,就业还是不错的…
Python应用范围还是挺多的,从Web、爬虫、数据分析、测试、运维、图像识别、机器学习、深度学习,基本各个领域都有Python的身影。除了Web方面比起Java、Php等逊色一些,其他方面,Python都扮演着比较重要的角色。就拿测试领域来说,编写自动化测试脚本,不管是UI自动化,还是接口自动化,用Python写脚本也是相当普遍的,并且通过pytest生成精美的allure测试报告,整个流程也都非常的顺。
目前Python应用范围还是挺多的,从Web、爬虫、数据分析、测试、运维、图像识别、机器学习、深度学习,基本各个领域都有Python的身影。除了Web方面比起Java、Php等逊色一些,其他方面,Python都扮演着比较重要的角色。就拿测试领域来说,编写自动化测试脚本,不管是UI自动化,还是接口自动化,用Python写脚本也是相当普遍的,并且通过pytest生成精美的allure测试报告,整个流程也都非常的顺。
北京python就业形势分析:
· 招聘待遇,工资30000-49999占比最多,达39%。
· 经验方面,要求3-5年工作经验要求的占比最多,达50%。
· 学历要求,本科学历要求的占比最多,达83%。
该数据来源于招聘网站。(仅供参考)
Python在人工智能、大数据、自动化运维、全栈开发方面有着得天独厚的优势,随着Python继续占领编程语言主流的趋势,全国各城市的招聘职位和薪资均会大幅度上涨。
所以目前Python的就业形式还是非常不错的,零基础想要学习赶紧报个班吧,千锋推荐你去试听一下
Python+selenium自动化,Allure包不生成index.html文件,解决方法
查看ui自动化生成的html报告。pytest+allure只生成了xml报告--json格式的数据,没有生成html的index报告。
场景:
排查:
1.cmd输入allure --version,查看是安装成功
2.pycharm输入pip freeze,查看包是否配置成功
都显示安装、配置成功
3.pycharm软件Terminal中输入allure
怀疑是pycharm软件哪里配置除了问题,排查浪费了N多时间。
最终总算是配置好了~
解决方法: