精华内容
下载资源
问答
  • Web自动化测试框架搭建:内含自动化测试理念介绍及分层的自动化测试框架搭建,整个自动化测试采用CI管理
  • selenium是一个开源的web ui自动化测试工具,详细就不再过多介绍了。 二、环境搭建 关于环境搭建,非常简单,可以参考我之前的博客。selenium新手入门 三、po设计 po(pom)模式:页面对象模型,把项目中的页面,封装...

    本篇文件利用当下流行的pom设计模式设置测试框架,编写测试用例,生成测试报告,并最终jenkins集成。

    一、selenium

    selenium是一个开源的web ui自动化测试工具,详细就不再过多介绍了。

    二、环境搭建

    关于环境搭建,非常简单,可以参考我之前的博客。selenium新手入门

    三、po设计

    po(pom)模式:页面对象模型,把项目中的页面,封装成一个一个类,一个页面对应一个类。再通过实例化这个类的对象,去调用类里面的属性和方法。
    好处:
    提高代码维护
    代码重复利用

    3.1 po分层

    3.1.1 基础层:

    基础层:放封装的selenium基础方法
    代码实现:

    
    class BasePage:
    
        def __init__(self,driver):
            self.driver=driver
    
    
        # 打开页面
        def into_testin(self,url):
            self.driver.get(url)
    
        # 定位元素
        def locate_element(self,args):
            return self.driver.find_element(*args)
    
        #定位一组元素
        def locate_eles(self,args):
            return self.driver.find_elements(*args)
    
        #输入值
        def input_(self,args,text):
            self.locate_element(args).send_keys(text)
    
        #点击按钮
        def click_button(self,args):
            self.locate_element(args).click()
    

    3.1.2 页面对象层

    页面对象层:pageobject,存放页面的元素定位和操作流程
    登录模块代码实现:

    from time import sleep
    from basepage.base_page import BasePage
    from selenium.webdriver.common.by import By
    
    
    class LoginPage(BasePage):
    
        '''定位页面元素'''
        
        #url
        testin_url='https://www.testin.cn/account/login.htm'
        
        #输入用户名和密码
        username_loc=(By.ID,'email')
        password_loc=(By.ID,'pwd')
    
        #点击登录按钮
        login_button=(By.ID,"submitBtn")
    
        #登录邮箱操作流程
        def testin_login(self,username='18170710339',password='Quyun1230'):
            self.into_testin(self.testin_url)
            sleep(2)
            self.locate_element(self.username_loc).send_keys(username)
            sleep(1)
            self.locate_element(self.password_loc).send_keys(password)
            sleep(1)
            self.click_button(self.login_button)
    

    选择手机代码实现:

    from time import sleep
    from basepage.base_page import BasePage
    from selenium.webdriver.common.by import By
    
    class SelectPage(BasePage):
    
        '''定位页面元素'''
        #定位弹窗
        win_loc=(By.XPATH,"//div[@class='modal-body']/i")
        #定位iphone
        ip_12pro_loc=(By.XPATH,'//div[@id="collapse_1"]/div/dl[1]/dd/div/span[2]/label/span')
        # 定位iphone12 pro max
        ip_loc = (By.XPATH, "//button[@device-source='00008101-0004102C3468001E']")
    
        #定位品牌
        an_loc=(By.XPATH,'//div[@id="collapse_1"]/div/dl[2]/dd/div/span[3]/label/span')
        # 定位安卓魅族
        mz_loc = (By.XPATH, "//button[@device-source='864968050654030']")
    
        #定位上市时间
        onlin_loc=(By.XPATH,'//div[@id="collapse_1"]/div/dl[6]/dd/div/span[5]/label/span')
        # 定位上市时间的华为荣耀
        sj_loc = (By.XPATH, "//button[@device-source='7d22ebd8f913637d']")
    
        #定位文本框
        text_detail=(By.XPATH,'//div[@id="modal_quota_alert"]/div/div/div[2]')
        #定位取消框
        qx_but_loc=(By.XPATH,'//div[@id="modal_quota_alert"]/div/div/div[3]/button[1]')
    
        #点击登录按钮
        login_button=(By.ID,"submitBtn")
    
        #登录邮箱操作流程
        def testin_select_01_iphone(self):
            sleep(1)
            self.locate_element(self.ip_12pro_loc).click()
            sleep(1)
            self.locate_element(self.ip_loc).click()
            sleep(1)
            as_text=self.locate_element(self.text_detail).text
            '''断言信息正确'''
            assert as_text==u'您的配额已不足,是否前往购买?'
            self.locate_element(self.qx_but_loc).click()
            sleep(2)
    
        def testin_select_02_android(self):
            sleep(1)
            self.locate_element(self.an_loc).click()
            sleep(1)
            self.locate_element(self.mz_loc).click()
            sleep(1)
            as_text = self.locate_element(self.text_detail).text
            assert as_text == u'您的配额已不足,是否前往购买?'
            self.locate_element(self.qx_but_loc).click()
            sleep(2)
    
        def testin_select_03_onlin_time(self):
            sleep(1)
            self.locate_element(self.onlin_loc).click()
            sleep(1)
            self.locate_element(self.sj_loc).click()
            sleep(1)
            as_text = self.locate_element(self.text_detail).text
            assert as_text == u'您的配额已不足,是否前往购买?'
            self.locate_element(self.qx_but_loc).click()
            sleep(2)
    

    3.1.3 测试用例层

    测试用例层:存放测试用例及数据
    代码实现:

    import pytest
    from time import sleep
    from selenium import webdriver
    from common.excel import read_excel
    from pageobject.login_page import LoginPage
    from pageobject.select_phone import SelectPage
    
    class TestTestIn:
    
        #打开浏览器
        def setup(self) -> None:
            self.driver=webdriver.Chrome()
            driver=self.driver
    
        def teardown(self) -> None:
            sleep(1)
            self.driver.close()
    
        '''利用excel导入登录测试数据'''
        @pytest.mark.parametrize('case',read_excel('./data/data.xlsx','login'))
        def test_01_login(self,case):
            '''测试登录模块'''
            xh,case_name,username,password,is_exc,result,bz=case
            lp=LoginPage(self.driver)
            lp.testin_login(username,password)
    
        def test_02_select_iphone_12(self):
            '''测试根据品牌选择手机'''
            lp = LoginPage(self.driver)
            lp.testin_login()
            ps=SelectPage(self.driver)
            ps.testin_select_01_iphone()
    
    
        def test_03_select_androi_sys(self):
            '''测试根据安卓系统选择手机'''
            lp = LoginPage(self.driver)
            lp.testin_login()
            ps=SelectPage(self.driver)
            ps.testin_select_02_android()
    
        def test_04_select_online_time(self):
            '''测试根据上市时间来选择手机'''
            lp = LoginPage(self.driver)
            lp.testin_login()
            ps=SelectPage(self.driver)
            ps.testin_select_03_onlin_time()
    
    

    3.1.4 创建测试数据

    登录模块,我们用到了数据驱动,我们先创建一个目录,如data,里面创建一个excel表,添加相应数据,如:
    在这里插入图片描述
    excel表中如下:
    在这里插入图片描述

    3.1.5 创建读取excel目录

    创建一个common目录,再创建一个read_excel的文件:
    在这里插入图片描述
    代码如下:

    import openpyxl
    
    def read_excel(excel_dir,sheet_name):
        '''读取excel'''
    
        #加载目录
        ex=openpyxl.load_workbook(excel_dir)
    
        #获取sheet页
        sheet=ex[sheet_name]
    
        #打印表最大行和列
        # print(sheet.max_row,sheet.max_column)
        # print(sheet.cell(2,1).value)
        #循环行和列
        sheet_list=[]
        for row in range(2,sheet.max_row+1):
            row_list=[]
            for col in range(1,sheet.max_column+1):
                row_list.append(sheet.cell(row,col).value)
            sheet_list.append(row_list)
        return sheet_list
    
    if __name__ == '__main__':
        read_excel('../data/data.xlsx','login')
    

    3.2 生成测试报告

    3.2.1 创建报告目录

    本次我们使用pytest测试框架,所以,当然使用allure测试报告了。如果不熟悉allure报告的朋友,可以参考我上一篇详细的介绍:单元测试框架–pytest从入门到精通2021最新教程
    先创建两个目录:一个临时目录:temp和存放测试报告的reports:
    在这里插入图片描述

    3.2.2 创建报告配置文件

    新建一个pytest.ini的文件:

    [pytest]
    #
    addopts=-vs --alluredir ./temp
    testpaths=./testcase
    python_files=test_*.py
    python_classes=Test*
    python_functions=test_*
    
    

    3.3 运行测试

    根据上面的操作,最终会形成这样的目录:
    在这里插入图片描述

    3.3.1 运行用例:

    创建一个run_test.py文件:

    import os
    import pytest
    from time import sleep
    
    if __name__ == '__main__':
        pytest.main()
        sleep(2)
        os.system('allure generate ./temp -o ./reports --clean')
    

    3.3.2 查看运行结果

    3.3.2.1 编辑器中结果

    在这里插入图片描述
    可以看出,结果全部运行通过。

    3.3.2.2 查看测试报告

    查看reports目录中的html测试,用浏览器打开:
    在这里插入图片描述
    在这里插入图片描述
    测试用例全部通过。

    四、jenkins集成

    如果不太熟悉jenkins的朋友,可以参考我之前的博客,有详细搭建教程:jenkins持续集成的使用(含RF自动执行自动化)

    4.1 启动jenkins

    cmd中进入jenkins目录,执行命令:

    java -jar jenkins.war
    

    在这里插入图片描述
    jenkins启动成功

    4.2 创建任务

    进入jenkins,创建一个任务:
    在这里插入图片描述
    添加项目目录:
    在这里插入图片描述
    设置运行命令:
    在这里插入图片描述
    保存,创建成功。
    任务创建成功后, 执行运行操作。
    在这里插入图片描述
    可以看到已经在运行了。
    在这里插入图片描述
    查看运行结果:
    在这里插入图片描述
    运行成功。测试报告,同上,就不再次看了。

    展开全文
  • 1. Web自动化测试环境如下: 脚本语言:Python 3.x 开发工具:PyCharm 自动化测试框架:Selenium 3.x 浏览器及对应驱动:Firefox(geckodriver.exe)或者Chrome(chromedriver.exe) 系统环境:windows10 2. 环境...
  • 1、安装python3。 2、安装pycharm。 3、cmd执行命令 ...安装完毕可以在网上找办法(ji huo)(po jie 的博客被封了,不会的可以...5、测试 run。。。。。。 下一篇博客再处理乱码。      

    1、安装python3。

    2、安装pycharm。

    3、cmd执行命令

    #1、pip install robotframework

    #2、pip install robotframework-ride

    #3、pip install robotframework-selenium2library

    其他按需要再安装,安装过程选生成RIDE桌面图标。

    4、pycharm2017专业版安装,专业版功能更齐全。

    安装完毕可以在网上找办法(ji huo)(po jie 的博客被封了,不会的可以给我留言)

    5、测试

    run。。。。。。

    下一篇博客再处理乱码。

     

     

     

    展开全文
  • github地址: https://github.com/wuranxu/webTest 基于Python的webUI自动化测试框架,支持多平台~带有自动下载chrome驱动功能
  • 使用Java+Maven+Selenium+TestNG+Jedis+Jenkins搭建WebUI自动化测试框架,资源的大体介绍如下链接http://note.youdao.com/noteshare?id=dc564343fd126f497074f6d7560c9f5e&sub=387EB3B1BAC945CEA71A5BDBC6484473
  • 在本文中小编给大家分享了关于selenium+python自动化测试环境搭建的相关步骤以及知识点内容,需要的朋友们参考学习下。
  • 提升个人自动化测试技术能力,为业务提供强有力的测试手段。 2 功能需求 基于Unittest,封装、调用和组织所有的测试用例,进行批量或指定用例运行; 支持邮件服务,可添加任意团队成员邮箱,及时通知团队成员自动...

    1 实现目的

    • 基于BS架构,模拟用户(鼠标、键盘)操作,达到快速、重复执行测试用例;
    • 便于回归测试,快速覆盖主线用例或功能;
    • 线上或线下巡检测试,结合持续集成,及时发现运行环境存在的问题;
    • 提升个人自动化测试技术能力,为业务提供强有力的测试手段。

    2 功能需求

    • 基于Unittest,封装、调用和组织所有的测试用例,进行批量或指定用例运行;
    • 支持邮件服务,可添加任意团队成员邮箱,及时通知团队成员自动化运行结果;
    • 支持log日志,保存运行过程所有或需要记录的数据;
    • 支持HTML测试报告,直观展示测试结果和数据;
    • 支持用例设计和测试结果分离,便于数据管理;
    • 支持Json、conf、excel等配置文件读
    展开全文
  • web UI自动化测试框架需要的子框架(工具): Eclipse+ Maven + Selenium + JAVA + TestNG + Log4j + ReportNG 1:下载并安装Eclipse URL http://www.eclipse.org/downloads/eclipse-packages/ 我安装的版本号是...
    web UI自动化测试框架需要的子框架(工具): Eclipse+ Maven + Selenium + JAVA + TestNG + Log4j + ReportNG
    

    1:下载并安装Eclipse URL http://www.eclipse.org/downloads/eclipse-packages/ 我安装的版本号是Version: Oxygen.1a Release (4.7.1a) Build id: 20171005-1200

    2:下载并安装JAVA URL http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    安装完成后,在控制面板种搜索“修改环境变量”-->选择“编辑账户的环境变量”--> 新建JAVA_HOME,如C:\Program Files\Java\jdk1.8.0_151,添加bin目录到Path,如%JAVA_HOME%\bin,测试配置是否成功,打开命令行运行java -version,如果能得到期待的JAVA 版本信息,证明安装配置成功!!

    设置JAVA_Home

    set path


    3:下载并安装Maven URL https://maven.apache.org/ 设置MAVEN_HOME,与设置JAVA_HOME方法相同。测试方法是在命令行输入mvn,是否能识别出该命令,如果可以,证明安装成功!!

    4: 搭建Selenium-WebDriver项目,方法见 http://www.seleniumhq.org/docs/03_webdriver.jsp#setting-up-a-selenium-webdriver-project  我的Selenium版本号是3.8.

    5: 如果想测试新版本的Firefox浏览器,需要配置geckodriver,下载地址 https://github.com/mozilla/geckodriver/releases

    我浏览器的版本号是57.0.3 64bit, 下载的geckodriver版本是v0.19.1,可以工作正常,此处有坑,注意版本的匹配。


    到这里为止,我们已经有WebDriver的项目了:-)

    展开全文
  • 本次Web自动化环境的搭建教程是基于Selenium+Eclipse+Testng框架,感兴趣的朋友可以看下去,开始你的web自动化测试之旅。
  • 2-详细设计1 需求分析2 技术栈3 ...开源自动化测试框架,直接使用 批量或指定用例运行 Unittest框架可支持此功能 log日志 使用Python的logging库即可 生成HTML测试报告 使用HtmlTestRunner.py模块可实现此功能
  • 完整的框架源码下载...一、Python+unittest+requests+HTMLTestRunner 完整的接口自动化测试框架搭建_00——框架结构简解 首先配置好开发环境,下载安装Python并...
  • Python 从无到有搭建WebUI自动化测试框架

    千次阅读 多人点赞 2020-06-01 22:16:43
    目录 前言 1、Python库选择 2、分层设计 3、基础类 ...一个迭代频繁的项目,少不了自动化测试,冒烟与回归全部使用自动...Python搭建自动化测试框架是高级测试的人设之一 1、Python库选择 这套框架主要的Pyt...
  • 本框架只是对 selenium( webdriver ) 原生方法进行了简单的封装,精简为大约 30 个方法,这些方法基本能够胜任于我们的web自动化测试。基于 unittest 单元测试框架,所以测试文件与测试方法遵循unittest开发。自动...
  • 首先要说明的是:本次Web自动化环境的搭建教程是基于Selenium+Python+Unittest框架,感兴趣的朋友可以看下去,开始你的web自动化测试之旅以上是selenium工作流的示意图。你要想玩转selenium首先你要选择合适的编程...
  • 首先,WEB UI自动化框架搭建以selenium为基础,需要了解一些基本用法:https://blog.csdn.net/qq_38175040/category_10942237.html 前言 我们以如下一段代码为例,刚刚初学完selenium的人差不多都是这样写的吧: ...
  • python pytest selenium 自动化测试框架搭建

    千次阅读 多人点赞 2020-07-01 15:39:46
    python pytest selenium 自动化测试框架搭建 公司一直有这个自动化测试需求,前期利用c++或者python进行了一些自动化脚本的编写。这几天没有版本更迭,基于前期的工作,把自动化测试整理了一部分功能模块。现在的...
  • 3分钟教你搭建自动化测试框架

    千次阅读 多人点赞 2018-12-24 14:35:06
    Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid: Selenium IDE:Firefox的一个...
  • 环境搭建前言一、...学习python+selenium实现UI自动化测试,要有一些HTML和xpth的基础,当然python基础一定是必须要会的。笔者建议花点时间了解下相关基础知识,不至于后面发懵。 Python:http://www.runoob.co...
  • 说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶叙述 二丶环境搭建 三丶项目实战中PO模型的设计与封装...实战基础:[{"Selenium3":["环境搭建","基础API使用"]},"如何破解验证...
  • WEB自动化测试-RobotFramework验收测试框架搭建,内含ATDD思想介绍,实例运行,验收测试框架搭建
  • Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE:Firefox的...
  • 如果测试框架中引入录屏功能,那么当脚本执行失败,便于定位问题。什么时候想开始录屏时就可以调用下面start方法,想保存录屏video,调用save方法,想结束录屏时就调用stop方法。注意一点,录制的video,需要下载...
  • 我们今天要安装的selenium 就是浏览器自动化测试框架,是一个用于Web应用程序的测试工具,就是模拟用户操作。支持的浏览器包括Chrome,IE,Mozilla Firefox,Safari,Opera等。今天我们以Chrome为例讲一下安装方法。...
  • 环境搭建前的准备:  1,到Python官网下载Python安装包:https://www.python.org/  如果不能访问,可以试试下面的解决办法:  a)。安装VPN网络连接工具,推荐用绿色VPN,我用的时候是免费的。  ...
  • 本文来自于cnblogs,文章主要讲解使用python结合SeleniumWebDriver库进行自动化测试框架搭建的相关内容。Selenium是一个基于浏览器的自动化工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。...
  • Web UI自动化框架搭建

    千次阅读 2018-05-26 20:09:20
    大家可以根据自己项目技术栈,选择合适的语言+外加Unit Test框架,来构建自己的Web UI自动化项目。比如:Java+Selenium+JUnit/TestNG,Python+Selenium+UnitTest等。 页面元素定义 方法库 层级结构组织 页面...
  • pytest是python的一种单元测试框架,不python自带的unittest 测试框架类似,但是比 unittest 框架使用起来更简洁,效率更高。... 可以用来做 web 呾 app 自动化(pytest+selenium/appnium)、 接口(pytest+requests)
  • idea+java+selenium自动化测试环境搭建-附件资源

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,810
精华内容 21,524
关键字:

web自动化测试框架搭建