自动化测试

selenium入门知识

元气小坏坏 提交于 2019-12-05 08:05:57
自动化测试 重复测试、性能测试、压力测试 快速、可靠、可重复、可程序化、广泛的 自动化测试适合场合 回归测试、更多更频繁的测试、手工测试无法实现的工作、跨平台产品的测试、重复性很强的操作 不适合场合 涉及与物理设备交互的测试、结果很容易通过人验证的测试、软件版本不稳定 注:实际过程中自动化开展的比例,远远没有想象的高 分层测试 页面测试UI(黑盒测试)-UI、JS 接口测试service-模块接口、web接口 单元测试unit(白盒测试)-单元、Code Review 自动化测试工具 UFT - QTP升级,HP商业软件,支持B/S与C/S Selenium-web应用程序测试工具,支持多平台、多浏览器 Robot Framework-python开发的自动化测试框架 Watir-Ruby开发,基于web的自动化测试工具 selenium介绍 IDE-可视化操作界面,录制、回访 Grid-分布式 WebDriver 1.0(IDE+Grid+RC) 2.0=1.0+WebDriver(替代了RC) 3.0 去掉了1.0中的RC,基于java8,firefox版本47以上 如何学好selenium 编程语言 python-doctest/unittest 前端知识 HTML、Xpath、CSS、JavaScript、Firebug、网络基础知识 参数化、配置、日志、简单框架搭建

UI 自动化框架设想

安稳与你 提交于 2019-12-05 07:28:06
测试框架选型: 首先,通过利用TestNG结合csv的使用,将测试用例数据转化为测试代码中的数据,减少了测试人员录入数据和准备数据的工具; 再次,通过对appium的封装,按照面向对象的思想将测试中用到的页面元素封装成对象,增强测试代码的复用率,并减轻测试人员对底层代码实现的负担,提高测试代码编写效率; 最后,引入失败重跑、失败截屏,并通过reportng生成测试报告的方式,逐步完善测试过程,提高定位问题的速度; 测试框架分层: 数据层、驱动层、测试Case层、支持层 第一层:数据层 即执行用例时所需要的测试数据,如商户名、空间名、URL等,这些数据用来支撑整个脚本的执行。针对数据层,这里采了用数据驱动的方式。 第二层:驱动层 这一层主要封装各种driver。 比如我们针对网页测试,使用selenium-webdriver开发包。 针对app测试,我们使用appium开发包。我们在这一层进行封装,通过调用selenium-webdriver,appium提供的原生方法,封装成可读性很强的方法且加上容错机制。 以后就算我们要换用其他的第三方包,我们的测试案例层和支持层的方法也不需要做任何的修改。 只需要修改driver层实现的方式就可以了。在一层,我们主要实现两个方面的封装,一个是driver的封装,一个是基于基类自然语言函数的封装。 driver封装 我们需要封装

搭建自动化测试环境

吃可爱长大的小学妹 提交于 2019-12-05 07:21:06
自动化测试环境: Python3.7+Selenium3.141+谷歌浏览器76.0/火狐浏览器 一、安装五大组件 1、安装Python并配置环境变量。 下载并安装: https://www.python.org/downloads/ 配置环境变量:C:\Python37;C:\Python37\Scripts; 2、安装Pycharm开发工具。 下载地址: http://www.jetbrains.com/pycharm/download/#section=windows 注意下载:Community社区版 3、安装Selenium 安装方式一(在线安装): 安装Seleinum:pip install -U selenium 查看Seleinum:pip show selenium 卸载Seleinum:pip uninstall selenium 4、安装浏览器:Chrome和Firefox的其中之一。 谷歌浏览器: https://www.google.cn/intl/zh-CN/chrome/ 火狐浏览器: http://www.firefox.com.cn/download/#more 一般下载延长版 5、浏览器驱动:下载Chrome浏览器驱动或者是Firefox浏览器驱动。 Chromedriver谷歌驱动: http://npm.taobao.org/mirrors

测试工程师相关技能整理

两盒软妹~` 提交于 2019-12-05 07:16:44
通用技能 业务相关 业务需求知识 业务管理流程 行业现状和发展方向 管理相关 时间管理(四象限法则) 重要且紧急 重要不紧急 紧急不重要 不紧急不重要 目标管理(SMART法则) S(Specific):目标明确 M(Measurable):目标可度量 A(Attainable):目标可实现性 R(Relevant):目标必须和其它目标具有相关性 T(Time-based):目标具有明确的截止期限 知识管理 工具:xmind、有道云笔记、印象笔记、Blog、GitHub、CSDN、testerhome等 团队管理 team leader 任务分工 工作汇报 部门协作 员工技术成长体系建设 员工身心健康发展 team worker 任务职责边界 敢于担当,对自己负责,对团队负责,对公司负责 彼此包容、和谐相处 思考和沟通 思考 今天完成了什么内容、明天需要做什么 自己哪些方面做得好,哪些做得不够好,下次需要改进 近期工作计划、学习计划(制定todolist) 职业规划 人生规划 沟通 敢于沟通:主动了解和听取对方的想法,敢于表达自己的观点 勤于沟通:多和别人交流自己的意见和想法 善于沟通:提升沟通技巧和效率 工具 抓包工具 fiddler Charles wireshark 缺陷管理工具 jira 禅道 文档协作管理工具 wiki--协同创作超文本系统 Docs--在线协作编辑工具

Python实现性能自动化测试竟然如此简单(转载至博客园可优)

情到浓时终转凉″ 提交于 2019-12-05 06:23:39
一、思考❓❔ 1.什么是性能自动化测试? 性能 系统负载能力 超负荷运行下的稳定性 系统瓶颈 自动化测试 使用程序代替手工 提升测试效率 性能自动化 使用代码模拟大批量用户 让用户并发请求 多页面多用户并发请求 采集参数,统计系统负载能力 生成报告 2.Python中的性能自动化测试库? locust库 使用Python 使用代码来创建批量用户 分布式 可以在多台服务器上,进行分布式性能测试 可伸缩性强 稳定、应用广泛 经得住各种场景下的考验 基于web ui界面展示测试详情 能测任何系统 二、基础操作?? 1.安装locust 使用官方pypi源来安装 pip install locustio 使用豆瓣pypi源来安装(推荐) pip install -i https://pypi.douban.com/simple locustio 安装成功之后,在cmd控制台将会新增一条命令,可输入如下命令查看: locust --help 2.基本用法 在项目根目录下创建 locustfile.py 文件 from locust import Locust, TaskSet, task class MyTasks(TaskSet): """ 创建测试任务类,需要继承TaskSet 可以添加多个测试任务 """ # 每个测试任务,往往会以实例方法的形式来呈现 #

村长告诉你:Python实现性能自动化测试竟然如此简单

不羁的心 提交于 2019-12-05 06:23:28
一、思考 1、什么是性能自动化测试? ◆ 性能 △ 系统负载能力 △ 超负荷运行下的稳定性 △ 系统瓶颈 ◆ 自动化测试 △ 使用程序代替手工 △ 提升测试效率 ◆ 性能自动化 △ 使用代码模拟大批量用户 △ 让用户并发请求 △ 多页面多用户并发请求 △ 采集参数,统计系统负载能力 △ 生成报告 2、Python中的性能自动化测试库? locust库 ◆ 使用Python △ 使用代码来创建批量用户 ◆ 分布式 △ 可以在多台服务器上,进行分布式性能测试 △ 可伸缩性强 ◆ 稳定、应用广泛 △ 经得住各种场景下的考验 △ 基于web ui界面展示测试详情 △ 能测任何系统 二、基础操作 1、安装locust ◆ 使用官方pypi源来安装 pip install locustio ◆ 使用豆瓣pypi源来安装(推荐) pip install -i https://pypi.douban.com/simple locustio 安装成功之后,在cmd控制台将会新增一条命令,可输入如下命令查看: 2、基本用法 在项目根目录下创建locustfile.py文件 ◆ 执行性能测试 运行之后,控制台会在本地监听一个端口 a. 程序文件要命名为locustfile.py才行 b. 假如命名为one_example.py,则需要这样运行 locust -f one_example.py ◆

Python实现性能自动化测试竟然如此简单!

本秂侑毒 提交于 2019-12-05 06:23:18
一、思考:question::grey_question: 1.什么是性能自动化测试? Python资源共享群:484031800 性能 系统负载能力 超负荷运行下的稳定性 系统瓶颈 自动化测试 使用程序代替手工 提升测试效率 性能自动化 使用代码模拟大批量用户 让用户并发请求 多页面多用户并发请求 采集参数,统计系统负载能力 生成报告 2.Python中的性能自动化测试库? locust库 使用Python 使用代码来创建批量用户 分布式 可以在多台服务器上,进行分布式性能测试 可伸缩性强 稳定、应用广泛 经得住各种场景下的考验 基于web ui界面展示测试详情 能测任何系统 二、基础操作:hammer::hammer: 1.安装locust 使用官方pypi源来安装 pip install locustio 使用豆瓣pypi源来安装(推荐) pip install -i https://pypi.douban.com/simple locustio 安装成功之后,在cmd控制台将会新增一条命令,可输入如下命令查看: locust --help 2.基本用法 在项目根目录下创建 locustfile.py 文件 from locust import Locust, TaskSet, task class MyTasks(TaskSet): """ 创建测试任务类

一个用于网站自动化测试的生态系统实现

前提是你 提交于 2019-12-05 06:19:02
这是我在从事网站自动化测试的工作当中构建出的一个“生态系统”。“生态系统”这个概念是我从公司的前辈身上学到的,他一直以来都认为自动化测试人员不应仅仅局限于编写测试代码,还应该让整个自动化测试的过程(测试代码的持续集成、分发、执行等)都自动化,形成一个“系统”,这个系统的自动化程度越高,自动化测试人员就越省力。 一、概念 这里我画了一张示意图: 之所以称之为“生态系统”,是因为建成之后需要的人为干涉很少,其余的时间都是系统内部循环运作。作为自动化测试人员的你只需要提交代码,之后便可以在AutomationDashboard上看到运行的结果了,其余的事情都由系统内部消化。当然,结果的分析还是需要人来完成,机器还没有聪明到可以灵活分析出各种各样让case fail掉的原因。 我们可以把整个系统看作一个黑盒子,那么上面的图可以变成: 实际上这里画的人不仅限于自动化测试人员,也可以是: (1)产品的管理者,比如产品经理需要从自动化回归测试知道这次release有无推迟风险; (2)团队的管理者,比如开发经理、QA经理需要从自动化的daily/weekly regression知道最近的代码质量如何; (3)开发人员,他们也许会想通过quick regression(提交的产品代码被部署到测试环境之后运行的测试)知道自己刚提交的代码有没有破坏系统的基本功能; (4

Python移动自动化测试面试

跟風遠走 提交于 2019-12-05 05:26:08
第1章 细说面试过程 以BAT的岗位招聘需求为例,讲解需求中的各项要求。笔试、技术面、高层面、HR面。压力面试、非压力面试,单面、群面,情景面试、电话面试。开放式问题、封闭式问题。首因效应,近因效应等。眼睛、语言、表达、倾听、反问、情绪控制、仪表、时间管理、反馈、真诚。初中高级测试工程师考核的内容。... 1-1 移动端APP自动化测试面试导学 试看 1-2 以BAT的岗位招聘需求为例,讲解需求中的各项要求 1-3 笔试、技术面、高层面、HR面 1-4 压力面试、非压力面试,单面、群面,情景面试、电话面试 1-5 问题类型:开放式问题、封闭式问题 1-6 面试的注意事项:首因效应,近因效应等 1-7 眼睛、语言、表达、倾听、反问、情绪控制、仪表、时间管理、反馈、真诚 1-8 初中高级岗位的不同考核内容 第2章 一个输入框引发的血案 通过对比展现优秀面试者的面试过程,介绍普通面试者和高级面试者之间的需求,我们如何表达? 2-1 .普通的面试者怎么回答 2-2 .有备而来的结构化思维 2-3 .面试后的思考,如何更好表达 第3章 磨刀不误砍柴工 - 自我分析 简历要表现什么?如何做一个好的简历?了解测试流程么?了解bug处理流程么?沟通的对象,沟通的方法?常用的测试工具?如何设计测试用例、管理测试用例?工作效率如何?都有哪些成果?问题的背后意图是什么? 3-1 .简历要表现什么 3-2

前端自动化测试karma+mocha+chai

ε祈祈猫儿з 提交于 2019-12-05 04:22:09
在多人同时改动代码时, 帮助我们知道是否别的接口或者函数是不是出问题了; 1. Karma https://karma-runner.github.io/2.0/index.html Karma 为前端自动化测试提供了跨浏览器测试的能力; 2. Mocha Mocha 是前端自动化测试框架; 支持生命周期;不同断言库:chai, nodejs的assert, should.js;同步异步;测试分组;等其他框架具备的能力; 基本语法: describe('测试1',function(){ describe('测试1-1',function(){ it('某个变量的值应该是数字',function(){ //断言 }) }); describe('测试1-2',function(){ it('某个数组长度应该不小于10',function(){ //断言 }) }); })  生命周期: describe('hooks', function() { before(function() { // runs before all tests in this block }); after(function() { // runs after all tests in this block }); beforeEach(function() { // runs before each