精华内容
下载资源
问答
  • 主要介绍了jenkins+python自动化测试持续集成教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Jenkins+python自动化测试持续集成Jenkins+python自动化测试持续集成Jenkins下载与安装跳过插件安装离线升级重启服务插件下载Jenkins部署项目 Jenkins+python自动化测试持续集成 Jenkins下载与安装 Jenkins是一个...

    Jenkins+python自动化测试持续集成

    Jenkins下载与安装

    Jenkins是一个开源的软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。由于是基于java开发因此它也依赖java环境,安装之前需要先安装jdk,建议jdk1.8+,安装后配置java环境变量。安装jdk成功后,在cmd使用java -version可查看jdk版本信息。
    
    1. 下载地址:https://www.jenkins.io/zh/

    展开全文
  • SeleniumUI自动化测试持续集成演练 接口自动化测试持续集成演练 一、SeleniumUI自动化测试持续集成演练 Selenium自动化测试项目介绍 用例业务内容:测试百度网首页搜索关键词之后,跳转页面标题的正确性 python...

    在这里插入图片描述
    篇幅较长,要耐心阅读哦~

    基础知识简要回顾

    • 持续集成、持续交付的好处与产生的必然性
    • Jenkins服务的搭建方法
    • Jenkins节点管理与用户权限
    • Jenkins插件
    • Jenkins父子多任务关联运行
    • Jenkins报警机制

    目录

    • SeleniumUI自动化测试持续集成演练
    • 接口自动化测试持续集成演练

    一、SeleniumUI自动化测试持续集成演练

    Selenium自动化测试项目介绍

    • 用例业务内容:测试百度网首页搜索关键词之后,跳转页面标题的正确性
    • python代码实现
    • Web UI 测试框架 Selenium (WebDriver)
    • 自动化测试框架pytest
    • 开发工具 PyCharm
    • 源码位置:https://github.com/princeqjzh/iSelenium_Python

    测试过程动作:

    • 访问首页,搜索“今日头条”,验证正确性
    • 访问首页,搜索“王者荣耀”,验证正确性
      #######测试代码知识点:
    • 运行类需继承unittest.TestCase类
    • setUp()测试准备方法,用于环境初始化
    • tearDown()测试结束方法,用于环境清理
    • 所有测试执行方法需要以test_开头
    • 两个测试动作执行方法 test_webui_1(),test_webui_2()
    • get_config()方法读取配置文件
    • 运行程序之前需要将配置文件iselenium.ini 复制/粘贴到自己测试执行环境的user.home目录下,并按照自己机器的实际路径配置 chrome_driver的路径

    Demo代码工程讲解

    • 开发工具PyCharm
    • 本地IDE运行测试类可以创建py.test运行方法

    测试代码

    • 目录树

    在这里插入图片描述

    • web_ut.py 文件
    import allure
    import configparser
    import os
    import time
    import unittest
    
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.chrome.options import Options
    
    
    @allure.feature('Test Baidu WebUI')
    class ISelenium(unittest.TestCase):
        # 读入配置文件
        def get_config(self):
            config = configparser.ConfigParser()
            config.read(os.path.join(os.environ['HOME'], 'iselenium.ini'))
            return config
    
        def tearDown(self):
            self.driver.quit()
    
        def setUp(self):
            config = self.get_config()
    
            # 控制是否采用无界面形式运行自动化测试
            try:
                using_headless = os.environ["using_headless"]
            except KeyError:
                using_headless = None
                print('没有配置环境变量 using_headless, 按照有界面方式运行自动化测试')
    
            chrome_options = Options()
            if using_headless is not None and using_headless.lower() == 'true':
                print('使用无界面方式运行')
                chrome_options.add_argument("--headless")
    
            self.driver = webdriver.Chrome(executable_path=config.get('driver', 'chrome_driver'),
                                           options=chrome_options)
    
        @allure.story('Test key word 今日头条')
        def test_webui_1(self):
            """ 测试用例1,验证'今日头条'关键词在百度上的搜索结果
            """
    
            self._test_baidu('今日头条', 'test_webui_1')
    
        @allure.story('Test key word 王者荣耀')
        def test_webui_2(self):
            """ 测试用例2, 验证'王者荣耀'关键词在百度上的搜索结果
            """
    
            self._test_baidu('王者荣耀', 'test_webui_2')
    
        def _test_baidu(self, search_keyword, testcase_name):
            """ 测试百度搜索子函数
    
            :param search_keyword: 搜索关键词 (str)
            :param testcase_name: 测试用例名 (str)
            """
    
            self.driver.get("https://www.baidu.com")
            print('打开浏览器,访问 www.baidu.com .')
            time.sleep(5)
            assert f'百度一下' in self.driver.title
    
            elem = self.driver.find_element_by_name("wd")
            elem.send_keys(f'{search_keyword}{Keys.RETURN}')
            print(f'搜索关键词~{search_keyword}')
            time.sleep(5)
            self.assertTrue(f'{search_keyword}' in self.driver.title, msg=f'{testcase_name}校验点 pass')
    
    • iselenium.ini 配置文件,配置文件需放到系统的家目录下,并添加chromedriver文件路径
    [driver]
    chrome_driver=<Your chrome driver path>
    
    • requirements.txt 依赖包文件
    allure-pytest
    appium-python-client
    pytest
    pytest-testconfig
    requests
    selenium
    urllib3
    
    • README.md 帮助文件
    **Selenium 自动化测试程序(Python版)**
    运行环境:
    - selenium web driver
    - python3
    - pytest
    - git
    
    配置文件:iselenium.ini
    - 将配置文件复制到本地磁盘的[user.home]目录
    - 填入设备的chromwebdriver文件的全路径
    
    运行命令:
    pytest -sv test/web_ut.py --alluredir ./allure-results
    

    代码clone

    • 将iSelenium_Python源码克隆到你的本地
    • 可以先Fork然后再克隆你Fork之后的源码项目(源码修改后可以push到github)
    • 也可以直接下载(源码修改后不能push到github)
    • 克隆参考代码:git clone git@github.com:princeqjzh/iSelenium_Python.git

    额外知识点:chrome driver怎么找?

    在这里插入图片描述

    Selenium自动化测试演练

    • 运行环境可以与Jenkins同一台机器,也可以与Jenkins不同机器
    • 实例使用与Jenkins同一台机器便于演示
    • 运行环境上需要事先配置python3运行环境,保证pytest可以运行
    • 确保环境配置是OK的,可以运行Selenium的web自动化测试程序

    配置Allure报告

    • Allure Report -更好看一些
    • 环境准备:
      运行环境上需要安装allure report运行环境
      Jenkins allure report 插件
    • 环境准备:
      Python依赖准备:pip install allure-pytest
    • 添加代码:
      @allure.feature(’ feature name’)
      @allure.story(‘story name’)
    • 运行命令:
      pytest -sv test/web_ut.py --alluredir ./allure-results

    Jenkins配置

    • Jenkins中新建一个自由风格的项目

    在这里插入图片描述
    在这里插入图片描述

    • 配置git 地址链接(ssh格式),添加Checkout to sub-directory
      在这里插入图片描述
      在这里插入图片描述

    • 添加命令加载python库:pip install -r requirements.txt

    • 添加运行命令:pytest -sv test/web_ut.py

      其中. ~/.bash_profile是为了获取本机的环境变量

      cd iSelenium_Python:切换到项目目录
      在这里插入图片描述

    • 添加运行参数,控制是否为有界面运行,此步骤之前可以先试运行程序,没有错误后再添加

    在这里插入图片描述

    • 添加Allure Report到 Post-build Actions中用于展示测试结果
      在这里插入图片描述
      在这里插入图片描述

    进行构建

    • 查看控制台输出
      在这里插入图片描述
    • 查看allure报告
      在这里插入图片描述
      在这里插入图片描述
    • 查看allure曲线图(至少运行两次)
      在这里插入图片描述

    本章小结

    • 自动化测试实例:Python代码的 Selenium_Python项目
    • 利用配置文件记录环境参数,保证相同的代码可以在不同环境上去运行
    • Selenium 驱动UI测试运行
    • 利用参数控制是否带界面运行
    • 自动化测试框架pytest控制测试程序的生命周期
    • Allure Report生成测试报告
    • Jenkins任务集成整个自动化测试运行过程

    二、接口自动化测试

    接口自动化测试项目介绍

    • 接口测试应用:http://www.weather.com.cn/data/cityinfo/
    • 接口功能:获得对应城市的天气预报
    • 源码:Python
    • 功能包:HttpClient
    • 请求方法:Get
    • 自动化测试框架:pytest
    • 开发工具:PyCharm
    • 源码位置:https://github.com/princeqjzh/iInterface_python

    业务过程

    • 请求接口传入对应参数
    • 解析返回JSON串
    • 获取对应[城市]返回值
    • 校验结果正确性
    • 输出报告

    在这里插入图片描述

    接口自动化测试项目源码讲解

    • 打开PyCharm
    • HttpClient:网络Http请求类
    • Weather():测试用例类
    • README.md:说明
    • 目录树
      在这里插入图片描述
    • jmx是与性能测试相关的,这里忽略
    • httpclient.py 封装和请求方法相关的函数
    import requests
    import urllib3
    
    
    class HttpClient:
        """Generic Http Client class"""
    
        def __init__(self, disable_ssl_verify=False, timeout=60):
            """Initialize method"""
    
            self.client = requests.session()
            self.disable_ssl_verify = disable_ssl_verify
            self.timeout = timeout
            if self.disable_ssl_verify:
                urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
    
        def Get(self, url, headers=None, data=None, json=None, params=None, *args, **kwargs):
            """Http get method"""
    
            if headers is None:
                headers = {}
    
            if self.disable_ssl_verify:
                response = self.client.get(url, headers=headers, data=data, json=json, params=params
                                           , verify=False, timeout=self.timeout, *args, **kwargs)
            else:
                response = self.client.get(url, headers=headers, data=data, json=json, params=params
                                           , timeout=self.timeout, *args, **kwargs)
            response.encoding = 'utf-8'
            print(f'{response.json()}')
    
            return response
    
    • weather_test.py 测试文件
    import allure
    
    from unittest import TestCase
    from library.httpclient import HttpClient
    
    
    @allure.feature('Test Weather api')
    class Weather(TestCase):
        """Weather api test cases"""
    
        def setUp(self):
            """Setup of the test"""
    
            self.host = 'http://www.weather.com.cn'
            self.ep_path = '/data/cityinfo'
            self.client = HttpClient()
    
        @allure.story('Test of ShenZhen')
        def test_1(self):
            city_code = '101280601'
            exp_city = '深圳'
            self._test(city_code, exp_city)
    
        @allure.story('Test of BeiJing')
        def test_2(self):
            city_code = '101010100'
            exp_city = '北京'
            self._test(city_code, exp_city)
    
        @allure.story('Test of ShangHai')
        def test_3(self):
            city_code = '101020100'
            exp_city = '上海'
            self._test(city_code, exp_city)
    
        def _test(self, city_code, exp_city):
            url = f'{self.host}{self.ep_path}/{city_code}.html'
            response = self.client.Get(url=url)
            act_city = response.json()['weatherinfo']['city']
            print(f'Expect city = {exp_city}, while actual city = {act_city}')
            self.assertEqual(exp_city, act_city, f'Expect city = {exp_city}, while actual city = {act_city}')
    
    • requirements.txt 依赖库
    allure-pytest
    appium-python-client
    pytest
    pytest-testconfig
    requests
    selenium
    urllib3
    
    • README.md 说明文档
    **接口功能自动化测试程序(Python版)**
    运行环境:
    - python3
    - pytest
    - allure report
    - git
    
    依赖准备:
    pip install allure-pytest
    
    运行命令:
    pytest -sv test/weather_test.py --alluredir ./allure-results
    
    • 模拟接口测试用例通过:actual _value == expect _value
    • 模拟接口测试用例失败:actual value != expect_ _value
    • 本地代码讲解和运行演示-Demo

    Jenkins配置

    • 复习知识点:Slave节点配置管理演示
    • 权限配置
    • Known host操作:Know host 是机器的ssl的校验机制,在机器的home目录下一般有.ssh的目录,该目录下有known hosts 文件,该文件存放的是被当前机器所信任的服务器ip

    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    • Jenkins中创建自由风格任务
      在这里插入图片描述
    • 添加Git地址
      在这里插入图片描述
    • 添加sub-directory

    在这里插入图片描述

    • 添加命令加载Python库:pip3.9 install -r requirements.txt

    • 添加运行命令:pytest -sv test/weather_test.py -alluredir ./allure-results
      在这里插入图片描述

    • 配置Allure Report插件
      在这里插入图片描述

    • post-build Actions
      在这里插入图片描述

    • 运行Jenkins
      在这里插入图片描述在这里插入图片描述

    本章小结

    • 自动化测试实例:Python代码
    • 利用Python常用package中的类发起接口请求、获取接口返回值、解析JSON字段、校验结果正确性
    • 利用pytest框架来运行接口测试,控制程序的生命周期
    • Allure report测试结果展示
    • Jenkins任务:源码同步、运行任务、展示测试报告、发送邮件

    三、总结

    • Web UI自动化测试持续集成
    • 接口自动化测试持续集成
    • 通过参数来控制运行方式
    • 控制有界面or无界面运行
    • Allure Report展示测试结果报告
    • Jenkins + python + allure

    在这里插入图片描述

    最后: 可以关注公众号:伤心的辣条 ! 进去有许多资料共享!资料都是面试时面试官必问的知识点,也包括了很多测试行业常见知识,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

    如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!


    好文推荐

    转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

    面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

    面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

    什么样的人适合从事软件测试工作?

    那个准点下班的人,比我先升职了…

    测试岗反复跳槽,跳着跳着就跳没了…

    展开全文
  • 在Jenkins上进行自动化测试持续集成操作在Jenkins上进行自动化测试持续集成操作 在Jenkins上进行自动化测试持续集成操作 首先需要将jenkins部署到我们项目的远程服务器上,一般都是开发进行部署,因为开发比我们...

    在Jenkins上进行自动化测试持续集成操作

    在这里插入图片描述

    在这里插入图片描述

    1. 首先需要将jenkins部署到我们项目的远程服务器上,一般都是开发进行部署,因为开发比我们更先用到Jenkins,然后我们找开发要链接登录我们服务器的jenkins

    2. 在jenkins上新建项目,在该项目下建文件夹(目录),并配置相关信息,新建文件夹后服

    展开全文
  • 分层自动化测试持续集成_-_倪生华.pdf
  • jenkins+python自动化测试持续集成

    万次阅读 2018-07-09 20:18:00
    一、首先我们安装Jenkins,我这里采用的是.msi应用程序,根据提示进行安装(傻瓜式),最后会打开默认的网页地址:...最后查看控制台输出,出现以下字样,表明测试成功,并且没有出错,成功生成测试报告。  

    一、首先我们安装Jenkins,我这里采用的是.msi应用程序,根据提示进行安装(傻瓜式),最后会打开默认的网页地址:http://localhost:8080

    如果端口有冲突,可以去Jenkins的安装目录下的这个文件去改端口:

     

    二、进入Jenkins的界面,会提示输入解锁密码,根据界面提示找对对应文件输入密钥即可。

    三、选择推荐安装插件即可,两者都可以,看自己需要选择,选择后会进入插件安装页面,会需要一些时间,会因为网络等原因导致一些插件安装失败(国外服务器),不过后面可以再去装。

    四、创建一个账号,一定要记住密码

    五、保存后我们就进入了Jenkins的主界面了

    六、我们可以新建任务,输入项目名和项目风格

    七、进行项目配置

    选择这个插件,渲染测试报告样式

    环境构建前,输入测试项目的运行文件,绝对路径,前面加python运行环境(这里需要把python的环境变量从用户变量加到系统变量的path里面)

    插件,对测试结果界面的渲染

    构建后操作,也就是生成测试报告,这里填写报告文件的绝对路径和报告名

    设置完成后,点击保存,返回项目

    点击【立即构建】,进行项目测试,会运行一段时间,

    运行完成后,最后查看控制台输出,出现以下字样,表明测试成功,并且没有出错,成功生成测试报告。

     

    展开全文
  • 实现接口或者web自动化后,可以用GitLab对python代码进行管理、版本控制,最后再通过Jenkins去手动构建触发、定时任务触发、代码上传触发自动化测试用例的执行并发送邮件,以达到持续集成的目的 一、环境准备 1....
  • RF具体环境搭建方法可参考文章,本文档主要演示的脚本持续化job任务。
  • 持续集成与自动化测试持续集成自动化测试持续集成自动化测试持续集成自动化测试持续集成自动化测试持续集成自动化测试持续集成自动化测试持续集成自动化测试持续集成自动化测试持续集成与自动化测试
  • 围绕自动化测试开展持续集成本文不会介绍持续集成的概念、理论以及相关工具的用法,而是基于实际的项目案例,分享如何利用自动化测试保障持续集成的有效性,同时也借助持续集成提升自动化测试用例的价值。...
  • 本视频是java自动化测试项目的持续集成教程。持续集成(CI)是一种软件开发实践,它倡导团队开发成员协同工作,有需要的时候就对代码进行集成,不必要等到软件开发后期才开始集成。jenkins是一个CI工具。它可以根据...
  • STAF/STAX测试自动化框架,并且展示如何使用它来构建一个框架,在复杂试验台中实现测试自动化持续集成。回归测试往往用于确保软件变更不会在软件中引入新的问题或故障。另外,还可以用它来确保您不会重新引入之前...
  • 客户端UI自动化测试是大多数测试团队的研究重点,本文介绍猫眼测试团队在猫眼iOS客户端实践的基于KIF的UI自动化测试持续集成过程。 一、测试框架的选择 iOSUI自动化测试框架有不少,其中UIAutomation是Apple早期...
  • 微服务架构下的自动化测试持续集成工具链
  • 基于 KIF 的 iOS UI 自动化测试持续集成
  • 游戏项目中的自动化测试持续集成软件测试现在,许多游戏项目要么跳票严重,要不就是发布时Bug多多。当然,这样的现象并不仅存于游戏工业。例如,根据2001Standish集团发表的那份声名狼藉的报告“极度混乱”所表述...
  • 游戏项目中的自动化测试持续集成[4]软件测试完全自动化、重复的build和测试过程,这种过程每天运行多次,在极限编程中,我们把它称为:持续集成。为了更好的实行持续集成,像CruiseControl或者Anthill这样的开源...
  • 游戏项目中的自动化测试持续集成[2]软件测试代码功能测试会生成非常复杂的输出数据,比如游戏的图形渲染引擎,回归测试是唯一可行的自动化测试。以图形渲染引擎为例,所有图形测试以输出最终平台相关的图形文件为...
  • 详细介绍了使用Xcode与Xcode Server 实现 iOS 移动应用的自动化测试持续集成过程。
  • 游戏项目中的自动化测试持续集成[3]软件测试自动化测试可以看作在开发前期投入,在开发过程中赢利。大多数的代码修改,包括Bug修改,都可能会引入更多问题导致程序宕机。所以,理论上说,一旦代码有所改变,就必须...
  • 持续集成自动化测试移动应用需要做持续集成自动化测试吗?我想告诉大家的是,这事非常值得做。为什么呢?近5年来移动业务快速发展,市场也日趋成熟,但是移动应用的开发在大部分企业里还是采用传统的开发模式,...
  • 本文来自于网络,文章主要介绍了微服务架构下解决自动化测试、开发联调、测试环境、持续集成方面遇到的问题及解决方案等。在2008年时,市场软件形式大多为CS架构。当时存在的问题在于,开发耗时1-2年且内部的解耦度...
  • 持续集成自动化测试robotiumjenkins.pptx

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 93,522
精华内容 37,408
关键字:

自动化测试持续集成