自动化测试框架

使用Selenium自动化测试web程序

好久不见. 提交于 2020-04-08 11:57:03
Selenium 是目前用的最广泛的Web UI 自动化测试框架,核心功能就是可以在多个浏览器上进行自动化测试。 支持多平台:windows、linux、MAC ,支持多浏览器:ie、ff、safari、opera、chrome,多语言C、 java、ruby、python... Selenium IDE是firefox浏览器的一个插件。提供简单的脚本录制、编辑与回放功能。Selenium Grid是用来对测试脚步做分布式处理。现在已经集成到selenium server 中了。 依赖: <dependencies> <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.14.0</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependency> <groupId>commons-io</groupId> <artifactId

如何简单的理解TDD与DDT

隐身守侯 提交于 2020-04-06 06:19:16
TDD:TEST-DRIVEN Development 测试驱动开发究竟是什么意思?如何理解测试驱动开发? 举个红绿条简单的例子: 1.编写测试代码 2.编译运行测试代码,肯定会失败,因为实现代码还没有写 3.编写实现代码 4.运行测试观察测试结果,可能是红色的。 5.开发修改代码使得测试通过 6.运行测试,观察测试结果,直到变绿 7.可进行重构,进行代码优化,删除冗余,继续运行测试直到变绿 DDT:DATA-DRIVEN TEST 数据驱动测试是什么意思?如何理解数据驱动测试? 数据驱动的自动化测试是针对上述开发与测试之间紧密耦合问题提出的测试方法。通过建立测试与开发定义的软件元数据的关联——元数据映射表,在测试与开发之间建立松耦合关系。不论测试人员修改测试脚本,还是开发人员修改软件,只需要修改元数据映射表,既可以满足测试与开发同步进行。这样,可以减少测试脚本调试的工作量,更好的实现自动化测试 什么是数据驱动的自动化测试框架? 数据驱动的自动化测试框架是这样的一个框架,从某个数据文件(例如ODBC源文件、Excel文件、Csv文件、ADO对象文件等)中读取输入、输出的测试数据,然后通过变量传入事先录制好的或手工编写的测试脚本中。其中,这些变量被用作传递(输入/输出)用来验证应用程序的测试数据。在这个过程中,数据文件的读取、测试状态和所有测试信息都被编写进测试脚本里

软件测试基础理论(一)

喜夏-厌秋 提交于 2020-04-03 01:55:41
关于基础理论一二三,都已经重新整理更新到了基础知识总结,传送门: http://www.cnblogs.com/imyalost/p/6144862.html 1、什么是软件 定义:计算机系统中与硬件相互依存的一部分(程序+数据+相关文档) 程序:按事先设计的功能和性能要求执行的指令序列 数据:使程序能正常操纵信息的数据结构 文档:与程序开发、维护和使用有关的图文资料 2、软件的生命周期 可行性研究和计划、需求分析、概要设计、详细设计、实现(开发阶段)、 组装测试、确认测试、使用和维护 3、什么是软件测试 定义:软件质量保证的一种手段 目的:发现错误以及避免这些错误的发生 4、软件测试的方法 1)用试题检查法 2)用新旧两个系统做平行处理检查 3)软件测试自动化工具测试 5、软件测试有哪几个阶段(任务) 1)制定测试大纲(测试计划) 2)制作测试数据(测试方案) 3)单元测试(程序测试,一般由开发人员进行) 4)功能测试/性能测试(这两个阶段重合性较大,可以归为一类) 5)集成测试(子系统测试) 6)系统测试 7)验收测试 8)测试报告 9)向下阶段提交系统运行、维护用户手册 备注:可以分为产品→开发→测试→运维 6、软件测试工作流程图 立项阶段→需求阶段→设计阶段→编码&单元测试阶段→ 集成测试阶段→系统测试阶段→验收测试阶段→结项总结阶段 7、自动化测试的优点 提高工作效率

第一个web自动化测试脚本

人盡茶涼 提交于 2020-03-29 11:37:30
1,之前因为进行APP自动化,因为Eclipse已经配置过了Maven 2,创建Maven项目 3.引入selenium 框架 查看maven仓库:http://mvnrepository.com/ 搜素selenium java 复制到eclipse的pom。xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>come.test</groupId> <artifactId>WebAuto</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --> <dependency> <groupId>org

Python接口自动化测试01

人盡茶涼 提交于 2020-03-28 00:39:33
1)环境准备:   接口测试的方式有很多,比如可以用工具(jmeter,postman)之类,也可以自己写代码进行接口测试,工具的使用相对来说都比较简单,重点是要搞清楚项目接口的协议是什么,然后有针对性的进行选择,甚至当工具不太适合项目时需要自己进行开发。   在我们项目的初期,我们采用的是jmeter进行接口测试,当时觉得这个工具上手简单,团队成员学习成本低,并且接口测试的脚本稍微调整一下还可以用来做性能测试。   不过随着项目规模、团队人数的不断增长,渐渐的这个工具有适应不了当前项目的需求了,为此我们项目也重新开发了相关接口自动化的平台。但是,但是。。。可能是我让大家中毒太深,现在很多同学一提到接口测试关联到jmeter,为此,我深深感到不安。毕竟jmeter只是个工具,换个项目换个协议你是否还能玩转接口测试呢?session和cookie有什么区别?工具又是怎么实现的呢?   比如session如何保存,接口依赖如何处理,case如何管理及执行顺序,测试数据如何管理等等题,这个过程也有助于我们更加深刻的理解接口测试和http协议。   本文主要采用python语言,python中http协议接口相关的库有urllib,urllib2以及reqeusts库,这其中reqeusts库用来起来最方便,因此我也主要采用requests库来做http协议的接口测试

自动化测试神器 之 python unittest 断言

北慕城南 提交于 2020-03-18 11:58:06
  自动化测试的最后一步需要判断结果是否正确,而正确设置断言可以帮助判断测试用例的执行结果,从而提高自动化测试的效率,python unittest 提供了一个比较完整的断言方法。unittest框架测试框架提供的方法比较多,而且很多方法在自动化测试的时候不会使用到,所以我这边总结一下我认为比较常用的测试方法,用最直白的话解释了一下。 序号 方法 解释 1 assertEqual(a, b) 判断ab是否相等 2 assertNotEqual(a, b) 判断ab不相等 3 assertIs(a, b)  判断a是b 4 assertIsNot(a, b) 判断a不是b 5 assertIsNone(a) 判断a是不是None 6 assertIsNotNone(a) 判断a不是None 7 assertIn(a,b) 判断a在b中,此时a与b可以相等 8 assertNotIn(a, b) 判断a不在b中 9 assertIsInstance(a, b) 判断a是否属于b的实例 10 assertNotIsInstance(a, b) 判断a不属于b的实例 11 assertGreater(a, b) 判断a > b 12 assertGreaterEqual(a, b) 判断a >= b 13 assertLess(a, b) 判断a < b 14

自动化测试框架的思想

*爱你&永不变心* 提交于 2020-03-17 21:14:52
1、 所谓模块化思想 ,就是将一个测试用例中的几个不同的测试点拆分并且将其单个点的测试步骤进行了封装,形成了一个模块。 例如:一个测试用例要对一个登录程序进行测试,其中包括:用户名输入、密码输入、以及确定登录; 那么就可以将用户名输入、密码输入、确定登录、取消登录四个操作分别封装在四个不同的模块中。测试时,只需调用其模块即可。这样的话,当一个模块有变化,你只需单独维护那个模块即可,也可以根据模块的不同组合成不同的测试用例。 2、 所谓测试库思想 ,就是模块化思想的升华,其为应用程序的测试创造了库文件(可以是APIs、DLLs等),这些库文件为一系列函数的集合。其与模块化思想不同的是,其拓展了接口思想,即可以通过接口去传递参数,而不是一个封死的模块,可以说是一个多了一个“门”的交互型模块。 例如:还是以上那个测试用例,只是将用户名输入、密码输入、确定登录、取消登录封装成一个库,这个库含有一个函数Login,这个函数Login接收两个参数“用户名、密码”,对输入不同的用户名和密码可以进行不同的测试用例。也可以另外一个函数Cancle。 3、 所谓数据驱动思想 ,众说纷纭,很多人都觉仅仅依靠用EXCLE表进行不同数据的读取仅是一个高级的参数化,其实怎么理解并不重要,关键是其思想能够好的应用到你的框架中。而我的理解就是变量不变,数据驱动结果,不同的数据导致了不同的结果的产生

Selenium (浏览器自动化测试框架)

这一生的挚爱 提交于 2020-03-12 18:54:43
Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。 功能 框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。 使浏览器兼容性测试自动化成为可能,尽管在不同的浏览器上依然有细微的差别。 使用简单,可使用Java,Python等多种语言编写用例脚本。 组件 Selenium IDE:一个Firefox插件,可以录制用户的基本操作,生成测试用例。随后可以运行这些测试用例在浏览器里回放,可将测试用例转换为其他语言的自动化脚本。 Selenium Remote Control (RC) :支持多种平台(Windows,Linux,Solaris)和多种浏览器(IE,Firefox,Opera,Safari)

自动化测试面试题及答案大全(2)

人盡茶涼 提交于 2020-03-09 12:20:47
自动化测试面试题及答案大全(2) 原创测试喵 最后发布于2019-04-18 09:40:05 阅读数 3425 收藏 展开 问题1:Selenium是什么,流行的版本有哪些? 是一个开源的web自动化测试的框架,支持多种编程语言,支持跨浏览器平台进行测试。 Selenium 1.0或Selenium RC Selenium 2.0或Selenium Webdriver Selenium 3.0 问题2:你如何从命令行启动Selenium RC? java -jar selenium-server.jar // 在浏览器中运行一套Selenese脚本 java -jar selenium-server.jar -htmlSuite 问题3:在我的机器端口4444不是免费的。我怎样才能使用另一个端口? //你可以在运行selenium服务器时指定端口为 - Java -jar selenium-server.jar -port 5555 问题4:什么是Selenium Server,它与Selenium Hub有什么不同? Selenium Server是使用单个服务器作为测试节点的一个独立的应用程序。 Selenium hub代理一个或多个Selenium的节点实例。一个hub 和多个node被称为Selenium grid

(五十三)自动化测试高级应用之自动发邮件功能-整合自动发邮件功能

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-05 02:41:11
随笔记录方便自己和同路人查阅。 #------------------------------------------------我是可耻的分割线-------------------------------------------   学习 selenium自动化之前,最好先学习HTML、CSS、JavaScript等知识,有助于理解定位及操作元素的原理。关于python和selenium安装请自行搜索别的资料,这里就不多做介绍了,所有例子均使用python3.6+selenium执行的。 #------------------------------------------------我是可耻的分割线------------------------------------------- 整合自动发邮件功能 解决了前面的问题后,现在就可以将自动发邮件功能继承到自动化测试项目中了。下面打开 runtest.py 文件重新进行编辑。 # !/usr/bin/env python # -*- coding: UTF-8 –*- __author__ = 'Mr.Li' from HTMLTestRunner import HTMLTestRunner from email.mime.text import MIMEText from email.header import Header