selenium+python web自动化测试框架项目实战实例教程

这篇具有很好参考价值的文章主要介绍了selenium+python web自动化测试框架项目实战实例教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

自动化测试对程序的回归测试更方便。 由于回归测试的动作和用例是完全设计好的,测试期望的结果也是完全可以预料的,将回归测试自动运行...

可以运行更加繁琐的测试 自动化测试的一个明显好处就是可以在很短的时间内运行更多的测试。学习自动化测试最终目的是应用到实际项目中,本篇将介绍大家自动化测试框架:

  • 项目目录结构:

selenium+python web自动化测试框架项目实战实例教程,软件测试,自动化测试,软件测试工程师,python,selenium,前端,软件测试,自动化测试,功能测试,程序人生

  • 基本类模块代码
 from Common.Log import framelog
class base():
    def __init__(self,driver):
        self.driver = driver
        self.log = framelog().log()
        self.log.info("info")
    #把八大定位放在一个函数里面
    def find_ele(self,dic):
        #传递过来字典第一个即为定位方式
        by =list(dic.keys())[0];
        print("by"+by)
        #传递过来字典第二个为具体的元素
        ele=list(dic.values())[0];
        self.log.info("id")
        self.log.info("元素"+ele)
        try:
            if by == 'id':
                return self.driver.find_element_by_id(ele)
            elif by == 'name':
                return self.driver.find_element_by_name(ele)
            elif by == 'className':
                return self.driver.find_element_by_class_name(ele)
            elif by== 'linktext':
                return  self.find_element_by_link_text(ele)
            elif by == 'partial':
                return self.find_element_by_partial_link_text(ele)
            elif by == "css":
                return  self.driver.find_element_by_css_selector(ele)
            elif by == "xpath":
                return self.driver.find_element_by_xpath(ele)
            else:
                return  self.driver.find_element_by_tag_name(ele)
        except:
            return None
    #输入值
    def send_key(self,ele):
        print(ele)
        return  self.find_ele(ele)

    #后退
    def back(self):
        self.driver.back()
    #前进
    def forword(self):
        self.driver.forward()
    #当前窗口url
    def url(self):
        self.driver.current_url
  • 数据模块-读取excel操作:
import  xlrd,os
#读excel操作、所有数据存放字典中
#filename为文件名
#index为excel sheet工作簿索引
def read_excel(filename,index):
    xls = xlrd.open_workbook(filename)
    sheet = xls.sheet_by_index(index)
    print(sheet.nrows)
    print(sheet.ncols)
    dic={}
    for j in range(sheet.ncols):

        data=[]
        for i in range(sheet.nrows):
          data.append(sheet.row_values(i)[j])
        dic[j]=data
    return  dic
  • log模块日志封装:
import logging,tim
from Common.function import  projectPath
class framelog():
    def __init__(self, logger=None):


    # 创建一个logger
        self.logger = logging.getLogger(logger)
        self.logger.setLevel(logging.DEBUG)
    # 创建一个handler,用于写入日志文件
        self.log_time = time.strftime("%Y_%m_%d_")
       #路径需要修改
        self.log_path = projectPath()+"/Logs/"
        self.log_name = self.log_path + self.log_time + 'log.log'
        print(self.log_name)
        fh = logging.FileHandler(self.log_name, 'a', encoding='utf-8')
        fh.setLevel(logging.INFO)

    # 定义handler的输出格式
        formatter = logging.Formatter('[%(asctime)s] %(filename)s->%(funcName)s line:%(lineno)d [%(levelname)s]%(message)s')
        fh.setFormatter(formatter)
        self.logger.addHandler(fh)

    #  添加下面一句,在记录日志之后移除句柄

     #   self.logger.removeHandler(fh)
    # 关闭打开的文件
        fh.close()


    def log(self):
        return self.logger
  • PO车次预定模块实现:
from Base.base import  base
import  time
class bookPage(base):
    #预定车票
    def book(self):
        return self.by_xpath("//*[@id='tbody-01-K5260']/div[1]/div[6]/div[4]/a")

    #动车
    def book_typeD(self):
        return  self.by_css("#resultFilters01 > dl:nth-child(1) > dd.current > label > i")
    # 关闭浮层
    def book_close(self):
        return  self.by_css("#appd_wrap_close")

    def book_nologin(self):
        return  self.by_css("#btn_nologin")

    def bookBtn(self):
        try:
            time.sleep(7)
            self.book_close().click()
            time.sleep(2)
            self.book().click()
            time.sleep(2)
            self.book_nologin().click()

        except:
            self.log.error("车次查询失败")
            None
        return self.dr_url()
  • 测试配置文件:
[testUrl]
url = “测试环境url"
[productUrl]
url = "生产环境url"
  • 测试用例管理模块
  1. 测试套件管理:
import unittest
import HTMLTestRunner
import  time
from Common.function import  projectPath

if __name__ == '__main__':
    test_dir=projectPath()+"TestCases"
    tests=unittest.defaultTestLoader.discover(test_dir,
                                                     pattern ='test*.py',
                                                    top_level_dir=None)
    now = time.strftime("%Y-%m-%M-%H_%M_%S",time.localtime(time.time()))
    filepath=projectPath()+"/Reports/"+now+'.html'
    fp=open(filepath,'wb')
    #定义测试报告的标题与描述
    runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title=u'自动化测试报告',description=u'测试报告')
    runner.run(tests)
    fp.close()

2.测试脚本:

import os,sys
sys.path.append(os.path.split(os.getcwd())[0])
import  time,unittest,HTMLTestRunner
from PageObject.bookPage import bookPage
from PageObject.orderPage import orderPage
from PageObject.searchPage import searchPage

from Base.baseUnit import  unitBase
from selenium import  webdriver


class SearchTest(unitBase):
    def test_02(self):
        search = searchPage(self.driver)
        res =search.searchTrain("杭州","上海","2019-05-10")
        #本例断言是根据当前页面的url去判断的
        self.assertIn('TrainBooking',res)

    def test_03(self):
        book = bookPage(self.driver)
        res=book.bookBtn()
        self.assertIn("InputPassengers",res)

    def test_04(self):
        order = orderPage(self.driver)
        order.userInfo("小王")
  • 项目格式:

selenium+python web自动化测试框架项目实战实例教程,软件测试,自动化测试,软件测试工程师,python,selenium,前端,软件测试,自动化测试,功能测试,程序人生

以上为代码级web自动化测试框架,后续将分享无代码自动化测试框架

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

selenium+python web自动化测试框架项目实战实例教程,软件测试,自动化测试,软件测试工程师,python,selenium,前端,软件测试,自动化测试,功能测试,程序人生

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

selenium+python web自动化测试框架项目实战实例教程,软件测试,自动化测试,软件测试工程师,python,selenium,前端,软件测试,自动化测试,功能测试,程序人生文章来源地址https://www.toymoban.com/news/detail-734676.html

到了这里,关于selenium+python web自动化测试框架项目实战实例教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium+python做web端自动化测试框架实战

    最近受到万点暴击,由于公司业务出现问题,工作任务没那么繁重,有时间摸索selenium+python自动化测试,结合网上查到的资料自己编写出适合web自动化测试的框架,由于本人也是刚刚开始学习python,这套自动化框架目前已经基本完成了所以总结下编写的得失,便于以后回顾温

    2024年02月14日
    浏览(50)
  • Selenium基于Python web自动化测试框架 -- PO

     🔥 交流讨论: 欢迎加入我们一起学习! 🔥 资源分享 : 耗时200+小时精选的「软件测试」资料包 🔥  教程推荐: 火遍全网的《软件测试》教程   📢 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 关于selenium测试框架首先想到的就是PO模型,简单说下PO模型 PO模型的

    2024年02月22日
    浏览(55)
  • 基于Selenium+Python的web自动化测试框架_pythonselenium框架

    主要负责执行用例后的生成报告,一般以HTML格式居多,信息主要是用例执行情况。另外还可以配置发送邮件功能。 4、log模块 主要用来记录用例执行情况,以便于高效的调查用例失败信息以及追踪用例执行情况。 三、自动化框架的设计和实现 1、需求分析 首先我们的测试对

    2024年04月17日
    浏览(57)
  • Python + Selenium,分分钟搭建 Web 自动化测试框架!

    在程序员的世界中,一切重复性的工作,都应该通过程序自动执行。 「自动化测试」就是一个最好的例子。 随着互联网应用开发周期越来越短,迭代速度越来越快,只会点点点,不懂开发的手工测试,已经无法满足如今的业务要求,只能被企业逐步裁员淘汰。 「自动化测试

    2024年02月02日
    浏览(91)
  • selenium进阶之web自动化项目框架搭建(Python版)

    1、项目结构 web自动化框架的设计,同接口自动化框架一样,采用分层设计。 文件或目录 说明 common 常用模块,常用的一些函数封装 testcases 用例模块,所有的测试用例 test_data 用例数据 logs 日志目录 reports 报告 settings.py 配置 main.py 项目入口 2、settings.py 3、main.py 4、commonlog

    2024年02月11日
    浏览(41)
  • web自动化测试框架落地实施全过程-测试环境搭建 (Selenium+Python)

    Web自动化测试是指使用自动化工具模拟用户在Web浏览器中执行的操作,通过编写脚本来自动化执行测试用例,以验证Web应用程序的功能、性能和兼容性等方面的质量。其主要目的是降低测试成本和时间,并提高测试效率和准确性。 Web自动化测试通常包括以下步骤: 确定测试

    2024年02月09日
    浏览(88)
  • ​selenium+python做web端自动化测试框架与实例详解教程

    最近受到万点暴击,由于公司业务出现问题,工作任务没那么繁重,有时间摸索selenium+python自动化测试,结合网上查到的资料自己编写出适合web自动化测试的框架,由于本人也是刚刚开始学习python,这套自动化框架目前已经基本完成了所以总结下编写的得失,便于以后回顾温

    2024年02月10日
    浏览(90)
  • Selenium Web自动化测试框架实践

    目录        前言: 项目背景 功能实现 项目架构 浏览器driver定义 用例运行前后的环境准备工作 工具方法模块 Pageobject页面对象封装 执行测试用例        前言:          Selenium是一个基于Web的自动化测试框架,可以通过模拟用户在浏览器上的操作,来自动化地测试Web应

    2024年02月10日
    浏览(62)
  • 【Web项目实战】从零开始学习Web自动化测试:用Python和Selenium实现网站登录功能

    B站首推!2023最详细自动化测试合集,小白皆可掌握,让测试变得简单、快捷、可靠 https://www.bilibili.com/video/BV1ua4y1V7Db 目录 1.环境搭建

    2024年02月06日
    浏览(70)
  • WEB自动化测试(selenium工具)框架、面试题

                让程序员代替人为去验证web项目功能的过程      1)需求变动不频繁 测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过程,

    2024年02月03日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包