51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2884|回复: 4
打印 上一主题 下一主题

老猿学自动化测试扫盲贴:自动化框架之selenium+pytest+python

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-7-17 17:02:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.概述




selenium:

基于JavaScript代码库的自动化测试框架,通过脚本语言,模拟用户行为操作,最接近用户真实场景,实现对web自动测试。Selenium,是目前的最火爆企业最主流的webUI自动化框架

pytest:

pytest是一个非常成熟的全功能的Python测试框架,是unittest框架的扩展,主要特点有以下几点:

⦁ 1、简单灵活,非常方便的组织自动化测试用例;

⦁ 2、支持参数化,可以细粒度地控制要测试的测试用例;

⦁ 3、能够支持简单的单元测试和复杂的功能测试,比如web端selenium/移动端appnium等自动化测试、request接口自动化测试

⦁ 4、pytest具有很多第三方插件,并且可以自定义扩展,比如测试报告生成,失败重运行机制

⦁ 5、测试用例的skip和fail处理;

⦁ 6、结合业界最美的测试报告allure+Jenkins,持续集成

2.环境搭建


pip install -U pytest

pytest-xdist #多线程

pip install -U pytest-rerunfailures #重试运行cases

pip install pytest-html #生成测试报告

pytest --version # 会展示当前已安装版本

3.编写规则


编写pytest测试样例非常简单,只需要按照下面的规则:

⦁ 测试文件以test_开头(以_test结尾也可以)

⦁ 测试类以Test开头,并且不能带有 init 方法

⦁ 测试函数以test_开头

⦁ 断言使用基本的assert即可

4.selenium+pytest案例实操


  1. import pytest # 引入pytest包

  2. def test_a(): # test开头的测试函数

  3.      print("------->test_a")

  4.      assert 1 # 断言成功

  5. def test_b():

  6.      print("------->test_b")

  7.      assert 0 # 断言失败

  8. if __name__ == '__main__':

  9.         pytest.main(['-s', 'class01.py'])
复制代码



可以包含一个或多个Test开头的测试类,test_开头的函数

1.测试类主函数模式

pytest.main([’-s’, ‘test.py’])

2.命令行模式运行

pytest 文件路径/测试文件名

5. 扩展插件


5.1. 测试报告:pytest-html

pytest.main([’-s’,‘test.py’,’–html=./report/result.html’])

:表示当前路径下生成report文件夹,result.html文件

5.2 批量运行用例:pytest-xdist

pytest.main([’-s’,‘test.py’,’–html=./report/result.html’,’-n=2’])

-n=2 表示2个线程并发运行所有的测试用例

5.3 allure测试报告:allure-pytest

运行用例:pytest.main([’-s’, ‘-q’, ‘–alluredir’, ‘./report/xml’])

pytest 测试目标文件 --alluredir 数据目录

运行后的结果,是生成xml的数据集合

生成报告:allure generate --clean ./report/xml/ -o ./results/html/

第一个是数据集目录,第二个是生成报告目录

-o是指向目标生成测试报告的目录;

6.conftest配置


当自动化用例越来越庞大的时候,很多用例的数据可以共享,复用,让用例脚本可读性,维护性更高,比如登录等

conftest.py 配置里可以实现数据共享,比如py跨文件共享前置

conftest.py配置脚本名称是固定的,不能改名称

不需要import导入 conftest.py,pytest用例会自动查找



自从使用了pytest框架,爱了爱了,深深的感受到它的可扩展性和灵活性,老板再也不用担心我的自动化效率低!





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

3#
发表于 2020-10-24 17:36:30 | 只看该作者
你好,有pytest方面的教程么,能发下给我不,490808467@qq.com
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2021-1-12 19:26:25 | 只看该作者
cbbcbb 发表于 2020-10-24 17:36
你好,有pytest方面的教程么,能发下给我不,

有的
公众号:程序员一凡
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-18 16:34 , Processed in 0.074757 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表