1. web自动化测试环境如何搭建
web自动化测试环境搭建主要包含如下几点:
1. Python 开发环境
2. 安装selenium包
3. 安装浏览器
4. 安装浏览器驱动 -- 保证能够用程序驱动浏览器,实现自动化测试.
如果想学习更多的内容,一个朋友在传智播客学习软件测试.现在月薪12K。
2. 公司如何开展web自动化测试的
1简单介绍项目开展自动化的原因(项目周期长,版本需要回归测试迭代,需求变动不频繁)
2介绍自动化测试框架情况(企业做自动化一般都是有框架的如unittest+selenium框架结合po模式进行封装的自动化测试框架)
3确定框架后会与持续集成配合使用,如常用Jenkins配置项目进行自动化测试任务的流水线执行,如配置每天晚上5点运行测试脚本或者每周运行更新维护后的测试脚本
4.我们知道自动化测试不能覆盖所有功能的,所以脚本通常根据功能的覆盖度设计smoke(冒烟)和sanity(可用性)自动化测试脚本产出测试报告
5.自动化测试辅助手工测试进行的日常测试工作
如果想这块内容增强的小伙伴参考网上的相关知识(黑马程序员论坛等)
3. 自动化测试的过程
自动化测试 与软件开发过程从本质上来讲是一样的,无非是利用自动化测试工具(相当于软件开发工具),经过对测试需求的分析(软件过程中的需求分析),设计出自动化测试用例(软件过程中的需求规格),从而搭建自动化测试的框架(软件过程中的概要设计),设计与编写自动化脚本(详细设计与编码),测试脚本的正确性,从而完成该套测试脚本(即主要功能为测试的应用软件)。
1) 自动化测试需求分析。
当测试项目满足了自动化的前提条件,并确定在该项目中需要使用自动化测试时,我们便开始进行自动化测试需求分析。此过程需要确定自动化测试的范围以及相应的测试用例、测试数据,并形成详细的文档,以便于自动化测试框架的建立。
2)自动化测试框架的搭建。
所谓自动化测试框架便是像软件架构一般,定义了在使用该套脚本时需要调用哪些文件、结构,调用的过程,以及文件结构如何划分。
而根据自动化测试用例,我们很容易能够定位出自动化测试框架的典型要素:
a. 公用的对象。
不同的测试用例会有一些相同的对象被重复使用,比如窗口、按钮、页面等。这些公用的对象可被抽取出来,在编写脚本时随时调用。当这些对象的属性因为需求的变更而改变时,只需要修改该对象属性即可,而无需修改所有相关的测试脚本。
b. 公用的环境。
各测试用例也会用到相同的测试环境,将该测试环境独立封装,在各个测试用例中灵活调用,也能增强脚本的可维护性。
c. 公用的方法。
当测试工具没有需要的方法时,而该方法又会被经常使用,我们便需要自己编写该方法,以方便脚本的调用。
d. 测试数据。
也许一个测试用例需要执行很多个测试数据,我们便可将测试数据放在一个独立的文件中,由测试脚本执行到该用例时读取数据文件,从而达到数据覆盖的目的。
在该框架中需要将这些典型要素考虑进去,在测试用例中抽取出公用的元素放入已定义的文件,设定好调用的过程。
4. 自动化测试基本流程是什么
自动化测试基本流程
1、制定测试计划
在展开自动化测试之前,最好做个测试计划,明确测试对象、测试目的、测试的项目内容、测试的方法、测试的进度要求,并确保测试所需的人力、硬件、数据等资源都准备充分。制定好测试计划后,下发给用例设计者。
2、分析测试需求
用例设计者根据测试计划和需求说明书,分析测试需求,设计测试需求树,以便用例设计时能够覆盖所有的需求点。一般来讲,基于Web功能测试需要覆盖一下几个方面:
1)页面链接测试,确保各个链接正常;
2)页面控件测试,确保各个控件可靠;
3)页面功能测试,确保各项操作正常;
4)数据处理测试,确保数据显示准确、处理精确可靠;
5)模块业务逻辑测试,确保各个业务流程畅通。
3、设计测试用例
通过分析测试需求,设计出能够覆盖所有需求点的测试用例,形成专门的测试用例文档。由于不是所有的测试用例都能用自动化来执行,所以需要将能够执行自动化测试的用例汇总成自动化测试用例。必要时,要将登陆系统的用户、密码、产品、客户等参数信息独立出来形成测试数据,便于脚本开发。
4、搭建测试环境
自动化测试人员在用例设计工作开展的同时即可着手搭建测试环境。因为自动化测试的脚本编写需要录制页面控件,添加对象。测试环境的搭建,包括被测系统的部署、测试硬件的调用、测试工具的安装和设置、网络环境的布置等。
5、编写测试脚本
根据自动化测试用例和问题的难易程度,采取适当的脚本开发方法编写测试较薄。一般先通过录制的方式获取测试所需要的页面控件,然后再用结构化语句控制脚本的执行,插入检查点和异常判定反馈语句,将公共普遍的功能独立成共享脚本,必要时对数据惊醒参数化。当然还可以用其他高级功能编辑脚本。脚本编写好了之后,需要反复执行,不断调试,知道运行正常为止。脚本的编写和命名要符合管理规范,以便统一管理和维护。
6、分析测试结果、记录测试问题
应该及时分析自动化测试结果,建议测试人员每天抽出一定时间,对自动化测试结果进行分析,以便尽早地发现缺陷。如果采用开源自动化测试工具,建议对其进行二次开发,以便与测试部门选定的缺陷管理工具紧密结合。理想情况下,自动化测试案例运行失败后,自动化测试平台就会自动上报一个缺陷。测试人员只需每天抽出一地你该时间,确认这些自动上报的缺陷,是否是真实的系统缺陷。如果是系统缺陷就提交开发人员修复,如果不是系统缺陷,就检查自动化测试脚本或者测试环境。
7、跟踪测试BUG
测试记录的BUG要记录到缺陷管理工具中去,以便定期跟踪处理。开发人员修复后,需要对此问题执行回归测试,就是重复执行一次该问题对应的较薄,执行通过则关闭,否则继续修改。如果问题的修改方案与客户达成一致,但与原来的需求有所偏离,那么在回归测试前,还需要对脚本进行必要的修改和调试。
8、自动化脚本的维护
如果系统发生变更时,对自动化测试脚本和相关文档包括《自动化测试用例》、《自动化脚本设计说明书》进行维护,以适应变更后的系统。
5. Web开发团队开发,测试,上线的环境和流程是怎样的
总结一下:
1,你需要一个可以模拟线上的开发环境。
2,你需要一个可以模拟线上的测试环境。
3,你需要一个可连调的测试环境。
4,你需要一个自动化的上线系统。
5,一个开发流程适合前后端的。
1,本地反向代理线上真实环境开发即可。(apache,nginx,nodejs均可实现)
2,模拟线上的测试环境,其实就是你需要一台有真实数据的测试机么,我建议没条件搭daily的,就直接用线上数据测好了,只不过程序部分走你们的测试环境而已,有条件搭daily当然最好咯。
3,可连调的测试环境,分为2种。一种是你们开发测试都在一个局域网段,直接绑hosts就完了,不在一个网段,就一人给一台虚拟的测试机,放在大家都可以访问到的公司内网,代码直接往上布即可。
4,自动化的上线系统,如果你们运维不给你们做,我猜你们都是直接ftp往线上扔?那么你可以自己做一个简易的上线系统。原理不复杂,每次上线时都抽取最新的trunk或master,做一个tag,再打一个时间戳的标记,然后分发到cdn就行了。界面里就2个功能,打tag,回滚到某tag,部署【够简易了吧,而且是全自动的】。
5,开发流程就是看项目了还有所用到的工具,构建,框架了。简单来说,原则就是分散独立开发,互相不干扰,连调时有hosts可绑即可。
回答了你的问题之后,我说下我自己的项目是怎么个开发流程。
灰常简单,代码管理工具是svn,起新需求就起新分支,独立开发,开发完合并到trunk,trunk不做任何开发工作,只负责merge。
上线有上线系统,你可以理解为我上面说的那个简易功能的加强版。我们是自带build的功能的。
自己编写build脚本,ant,grunt随便了。做好连到发布系统,一键集成,本地只关心源码开发。
本地环境,我拿nodejs写了一个自带rewrite,反向代理的server,超级仿真线上,一个hosts组管理的工具,一套适合自己部门的grunt插件库【就是很多很多grunt插件。。】。完全适合开发各种独立项目了。
当然如果你的测试,文档都集成在build那一步,是最棒的了。
协同合作我们是每个人开发都有一台自己的测试机,linux的,我本地也有工具可以完成自动build+push的功能。方便快捷。
可能全看下来挺复杂,不过前端工程化确实就是这个样子。帮你脱离之前的手忙脚乱,专注于业务的开发
6. 如何学习Web自动化测试
如果想系统的学习web自动化测试,可以参考一下步骤学习:
1.先学习手工测试和HTML相关的知识。
2.了解主流的web自动化测试框架,选择一个比较流行的框架,比如:Selenium。
3.重点学习web自动化测试框架Selenium的API。
4.可以学习一下单元测试框架来管理测试用例。
5.最后可以学习一下PO模式和数据驱动等高级技术,来更好的封装维护脚本。
黑马程序员的测试课程里讲解的非常详细,可以学习一下。
7. web自动化测试计划和步骤
测试用例:前置、步骤、断言
项目周期长:功能会越来越复杂
历史功能:比较稳定
回归,历史功能
开发-接口自动化同步
项目-8大模块-2000左右用例数
1、熟悉业务
需求文档/手动测试/产品聊,了解模块之间的关系/测试人员
项目目前在测试的阶段,棘手的问题
2、分析
系统当中哪些模块适合自动化、哪些模块不适合
历史功能稳定性、功能复杂性
核心模块
使用频率模块,哪一个模块bug率目前偏高
测试团队、产品 开会讨论
筛选2个模块 400个功能测试用例
如果是接口 ---接口有多少个,每个接口有多少个用例
3、功能测试 ---筛选自动化测试用例----核心功能、主流程、主功能点---140
用例评审===
4、自动化计划
自动化类型:web/接口
框架选型:
团队人员:
搭框架、定规范
时间规划:用例编写时间2个半月
效果:覆盖率是多少---用例通过率---跟项目测试进度结合
8. Web自动化测试入门
让程序代替人工去验证系统功能的过程
回归测试:项目在发新版本之后对项目之前的功能进行验证
压力测试:可以理解多用户同时去操作软件,统计软件服务器处理多用户请求的能力
兼容性测试:不同浏览器(IE、Firefox、Chrome)等
优点
误区
自动化测试分类
概念:让程序代替人工自动验证Web项目功能的过程
1.需求变动不频繁
2.项目周期长
3.项目需要回归测试
功能测试完毕(手工测试)
Selenium是一个用于Web应用程序的自动化测试工具;中文的意思(硒)
基于Python环境搭建
PIP工具
9. Web自动化的流程
web自动化流程
一. 了解需求,什么是系统的核心业务
二. 编写测试用例:用例名称,前置条件,测试数据,测试步骤,期望结果
三. 自动化代码的初步构建:所有的元素定位、元素操作、测试用例都写在一个模块中
问题:
1. 层次混乱,一旦页面元素调整,需要挨个寻找对应的测试模块,测试类,测试用例函数,不便于后期维护
2. 不便于代码的复用
四. 引入PO模式,进行分层设计:实现测试用例和页面对象分离
好处:
1. 层次清晰,相互独立,易维护
2. 页面对象可以多次调用,提高了代码的复用度
五. 引入单元测试框架unittest
六. 优化分层设计
将每个页面公共的属性和方法提取出来,封装成一个BasePage模块下的BasePage类,后期各个页面只需要继承它,就可以获得父类的所有属性和方法,这样不仅简化了代码,而且提高了复用度
七. 引入pytest:基于unittest,比unittest更"智能"
好处:
1. 可以通过打标记来运行特定的测试用例
2. 利用contest.py定义公共的fixture,多个测试类中都可以调用,不需要每个测试用例类都定义一遍环境准备和环境清理,简化了代码
3. pytest可以按一定规则自动发现测试用例,而unittest则需要向指定的测试套件中添加测试用例
4. 利用pytest-html库,可以生成自带的html报告和xml文件,而xml文件的好处是方便跟其它平台的集成和展示,方便做二次开发
八. 注意点
1. 做自动化前,要有独立的账号,避免外界环境的干扰
2. 页面顺序完全是由业务逻辑来决定,由测试用例来决定。因此在封装页面时不用考虑谁来调用它,不用考虑哪一个页面操作之后再来使用它(或者哪一个功能操作之后再来使用它),应该考虑的是无论前面做了什么样的操作,谁来用它,任何一个步骤来调用它的时候,它都能正常的操作(这也是为什么一些页面的元素需要滚动操作)
3. 在封装功能时不要考虑在用例中是什么意思,只需要考虑在本页面是什么功能(比如:标详情页面获取余额功能的封装,不需要把函数命名为get_user_left_money_before_invest,而是在只考虑它的功能的情况下命名为get_user_left_money)
4. 在选标的过程中,不要指定特定的标名,而是要随机选择,因为页面上的标是会变的。因此测试数据的选取,用例的设计要遵循尽量不要依赖系统的原则,这样也提高了代码的稳定性
5. 投资操作的前置条件是:可用余额要大于投资金额,如何保证这个条件,有两种方法:
1) 后台充值足够多的钱
2) 判断当前用户余额够不够,不够就充值,可以调用查询接口查询用户余额,调用充值接口进行充值——因为API操作是非常快的,这也提高了测试用例的效率
6. 保证用例的独立性:每一个测试用例都要重新打开浏览器