python+selenium+allure+pytest webUI自动化小白上路

提示:python+selenium+allure+pytest webUI自动化文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

前言

生命不息,奋斗不止,加油吧!

一、环境准备

1.python3.8
2.selenium4.3.0
3.allure(配置环境变量,cmd查看) 2.9
4.allure-pytest 2.9.2=25

二、问题总结

1.怎么都定位不到元素?
senenium的版本问题,最新版本的语法有所调整,建议下新版的
driver.find_element(By.ID, “password”) 新版本语法
driver.find_element_by_id( “password”)旧版语法
新版本的话开头引入如下
from selenium.webdriver.common.by import By
2.无法生成allure的html报告?
检查allure环境变量配置
系统–>高级系统设置–>环境变量–>系统变量–>path(allure的bin目录)

python+selenium+allure+pytest webUI自动化小白上路

; 三、框架设计(待完善)

1.common:公共用例,比如登录
2.configs:配置文件,比如账号密码、测试环境
3.testcase:测试用例
4.run:执行入口
5.tools:测试方法,比如读写方法

python+selenium+allure+pytest webUI自动化小白上路

四、代码设计

1.配置文件

测试账号、测试环境可以提前放在一个文件,方便读取
1.测试环境如下

current_env = "预发"
env_dict = {
    "日常":"https://bip-daily.xxx.com/#/",
    "预发":"https://bip-pre.xxx.com/#/",
    "线上":"https://yonsuite.xxx.com/#/"
}

if __name__ == '__main__':
    print(env_dict[current_env])

2.测试账号如下:

username = "188xxxxxxx
password = "123xxxxxxxx"

#日常
username = "199xxxxxxxxxxx "
password = "yonxxxxxxxxxxxxxx"



登录作为一个公共方法封装,放common目录下后期调用

ifrom selenium import webdriver
from selenium.webdriver.common.by import By
from configs.env import env_dict,current_env
from configs.account import username,password
import time

class Driver:
    def __init__(self):
        self.driver = webdriver.Chrome()

        self.driver.implicitly_wait(5)

        self.driver.maximize_window()

        self.driver.get(env_dict[current_env])

        self.login()
    def login(self):
        global driver
        self.driver.switch_to.frame("yonbip_login_id")

        self.driver.find_element(By.ID, "username").send_keys(username)

        self.driver.find_element(By.ID, "password").send_keys(password)

        self.driver.find_element(By.ID, "submit_btn_login").click()

if __name__ == '__main__':
    Driver()

3.测试用例:test_case01

1.测试用例以test开头、类以Test开头、函数以test开头
2.pytest会自动读取test开头的

import allure,pytest
from common.myDriver import Driver
from selenium.webdriver.common.by import By
import time
class Test_Org:
    def test_crate_org(self):
        with allure.step("打开浏览器,登录系统"):
            #打开一个空白浏览器
            my_driver = Driver()
            #对当前屏幕截图.截图保存到report文件夹中
            my_driver.driver.get_screenshot_as_file("./test_report/登录成功后进入的主页面.png")
            #将上一步截图附加进测试报告
            allure.attach.file("./test_report/登录成功后进入的主页面.png",attachment_type=allure.attachment_type.PNG)data = pd.read_csv(

4.执行用例:run.py

import allure,os,pytest
if __name__ == '__main__':

    result_dir = "./test_result"
    report_dir = "./test_report"
    pytest.main(["-sv", "--alluredir=%s" % result_dir, "--clean-alluredir", "test_Org.py"])
    os.system("allure generate --clean %s -o %s" % (result_dir, report_dir))
    ret = os.system("allure generate --clean %s -o %s" % (result_dir,report_dir))
    if ret:
        print('生成测试报告失败')
    else:
        print('生成测试报告成功')

总结

不定时更新

Original: https://blog.csdn.net/weixin_41977978/article/details/125657330
Author: Itsyang0123
Title: python+selenium+allure+pytest webUI自动化小白上路

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/773660/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • python编程入门到实践学习笔记——外星人入侵游戏pygame(三 记分)

    python编程入门到实践学习笔记——记分 前言 * 添加play按钮 响应鼠标点击按钮事件 提高游戏难度 创建记分 记分实例及运用 最高得分 等级显示 屏幕显示余下飞船 前言 前…

    Python 2023年9月21日
    046
  • 在centos8使用Docker部署Django项目

    引言 在本文中将介绍在Docker中通过django + uwsgi + nginx部署方式部署Django项目, 由于记录的是学习过程,使用的都是目前较高的版本。 python …

    Python 2023年6月10日
    094
  • Python:实现简单的递归下降Parser

    1. 算术运算表达式求值 在上一篇博文《Python技法:用re模块实现简易tokenizer》中,我们介绍了用正则表达式来匹配对应的模式,以实现简单的分词器。然而,正则表达式不是…

    Python 2023年10月28日
    048
  • Django 3.2 开发web项目

    Django 3.2 开发web项目 开发环境 * Django安装 Django文档 Django创建 Django启动 Django目录介绍 Django创建自己的应用 COD…

    Python 2023年8月5日
    0106
  • Python 用3行代码提取音乐高潮部分

    Original: https://www.cnblogs.com/123456feng/p/16056884.htmlAuthor: 蚂蚁ailingTitle: Python …

    Python 2023年5月24日
    059
  • python常用内置函数和关键字

    常用内置方法 在Python中有许许多多的内置方法,就是一些Python内置的函数,它们是我们日常中经常可以使用的到的一些基础的工具,可以方便我们的工作。 方法一 built_li…

    Python 2023年11月2日
    036
  • 【PostgreSQL】PostgreSQL 15移除了Stats Collector

    试用即将发行的PostgreSQL 15的人会发现少了一个后台进程:​ 来和PostgreSQL 14比较一下:​ 是的,stats collector进程没有了。但是去掉这个进程…

    Python 2023年10月23日
    068
  • python np.loadtxt() 读取数据集时报错ValueError: could not convert string to float以及pandas.readcsv()对比

    阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量。文章设置为仅粉丝可见,是因为写博客确实花了不少精力。希望互相进步谢谢!! 这里写自定义目录标题 …

    Python 2023年8月28日
    077
  • 基于支持向量机的图像分类系统(MATLAB GUI界面版)

    摘要:本文详细介绍基于支持向量机的图像分类系统,给出 M A T L A B_的算法介绍及界面设计过程。在界面中可点击选择图片或带图片的文件夹,系统自动对所涉及图片进行识别分类,可…

    Python 2023年10月29日
    052
  • django小项目 —– 创建错题集

    整体思路 通过API调用获取错题信息,将数据存入数据库(保证可长期查看),通过python+django将数据库数据在前端呈现。 实施思路 1、通过抓包获取到小程序相对应的错题集A…

    Python 2023年5月23日
    066
  • Kafka开启SASL认证 【windowe详细版】

    一、JAAS配置 Zookeeper配置JAAS zookeeper环境下新增一个配置文件,如zk_server_jass.conf,内容如下: Server { org.apac…

    Python 2023年10月21日
    056
  • python生成二维码

    介绍一款生成可关联的二维码库的基本使用,MyQR(amzqr)使用非常方便 MyQR(amzqr)库您可以生成普通二维码、艺术二维码(黑白或彩色)和动画二维码(黑白或彩色)。 [E…

    Python 2023年5月24日
    062
  • 从 0 到 1 使用 Python 开发一个钉钉群应答机器人

    很多时候,我们都希望计算机程序能够为我们自动化的处理一些学习、工作和生活上的任务,毕竟「偷懒」可是促进科技进步和社会发展的一大动力。基于这种需求,诞生了很多种自动化的工具,比如爬虫…

    Python 2023年8月6日
    038
  • 如何在 Django 项目中使用 MQTT

    MQTT 是一种基于发布/订阅模式的轻量级物联网消息传输协议,可以用极少的代码和带宽为联网设备提供实时可靠的消息服务,它广泛应用于物联网、移动互联网、智能硬件、车联网、电力能源等行…

    Python 2023年8月6日
    099
  • Prokka安装和使用

    原核生物基因组快速注释——Prokka Prokka是一个适用于原核生物的基因组自动注释工具,由墨尔本大学生物信息学家 Torsten Seemann开发。Prokka协调了一套现…

    Python 2023年9月7日
    045
  • 当 xxl-job 遇上 docker → 它晕了,我也乱了!

    开心一刻 公交车上,一位老大爷睡着了,身体依靠在背后的一位年轻小伙子身上 小伙子一直保持站姿十几分钟,直到老人下车 这位在校大学生,接受采访时说:”当时就觉得背后这个人…

    Python 2023年10月15日
    053
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球