一、什么是web自动化测试

自动化(Automation)是指机器设备、系统或过程(生产、管理过程)在没有人或较少人的直接参与下,按照人的要求,经过自动检测、信息处理、分析判断、操纵控制,实现预期的目标的过程。

这是教科书里面的自动化的定义,回归到自动化测试其实自动化测试就是什么呢?

指的是测试的过程在没有人或者较少的人为的干预的情况下进行的测试,再简单点说就是用程序或者脚本来测试程序,那么在web自动化测试中主要用来把测试人员从繁琐的内容中解放出来,主要做一些比如需要多次输入,多次运行的,比如我们用边界值,等价类设计的很多测试数据需要执行,比如业务流程需要执行很多遍的时候我们就可以使用web自动化测试

二、web自动化测试的工具

现在主流的web测试工具我们常用的就是selenium的那一套工具包括

  • 浏览器一般选择chrome
  • 浏览器对应的driver(chromedriver)
  • Python
  • Selenium库

三、web自动化测试的环境安装

  • 浏览器安装 下载浏览器下一步按照就好了
  • chromedriver 下载 可以到 npmmirror.com/
  • 注:100的大版本对的上就Ok了

四、web自动化测试的方法

Web自动化测试一般使用设计测试用例的方法跟功能测试相同,使用等价类划分,边界值,因果图,场景法等等就好了

Web自动化测试实施的使用我们一般会采用po模式设计

PO是page object的简称,核心思想是通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化, 只需要调整页面元素封装的代码,提高测试用例的可维护性、可读性。

PO模式可以把一个页面分为三层,对象库层、操作层、业务层。

对象库层:封装定位元素的方法。

操作层:封装对元素的操作。

业务层:将一个或多个操作组合起来完成一个业务功能。

比如登录:需要输入帐号、密码、点 击登录三个操作。

测试脚本只需要调用业务层代码就可以完成

当出现页面需要的时候只需要测试代码可以完全不用修改只需要修改操作层就好了

五、web自动化测试的流程实施

web自动化测试流程和功能测试基本一致:

下面我们已登录需求为例

(1)需求分析

这里我们以手机登录为例

(2)设计测试用例与测试数据

自动化测试测试用例不用像手工测试设计的那么详细

ID 测试模块 标题 前置条件 测试输入
login_001 登录 错误的手机号登录 网络正常,功能正常 手机号错误其他输入项正常

【下方为测试数据】

[{"username": "21888888888","pwd": "123456","code": "8888","ast_msg": "账号格式不匹配","desc": "用户名错误"},{"username": "12888888888","pwd": "123456","code": "8888","ast_msg": "账号格式不匹配","desc": "用户名错误"},{"username": "1088888888","pwd": "123456","code": "8888","ast_msg": "账号格式不匹配","desc": "用户名错误"},{"username": "138888888889","pwd": "123456","code": "8888","ast_msg": "账号格式不匹配","desc": "用户名错误"},{"username": "32888888888","pwd": "123456","code": "8888","ast_msg": "账号格式不匹配","desc": "用户名错误"},{"username": " ","pwd": "123456","code": "8888","ast_msg": "用户名不能为空","desc": "用户名错误"}
]

(3)搭建web自动化测试环境

在上面环境安装那里已经搭建了

(4)设计web自动化测试框架

一般测试po模式的内容包括

(5)编写代码

在po文件夹中创建page_login

 from selenium.webdriver.common.by import Byfrom utils import UtilsDriverfrom base.page_base import BasePage# 界面对象层class PageLogin(BasePage):# 账号元素def find_username(self):return self.driver.find_element_by_id("username")# return self.driver.find_element(*self.username)# return self.get_element(self.username)# 密码元素def find_pwd(self):return self.driver.find_element(By.ID,"password")# 验证码元素def find_vcode(self):return self.driver.find_element_by_id("verify_code")# 按钮开始登录元素def find_login_btn(self):# return self.driver.find_element_by_name("sbtbutton")return self.driver.find_element(By.NAME,"sbtbutton")# 操作层
class HandleLogin(object):def __init__(self):self.page_login=PageLogin()def input_username(self,username):self.page_login.find_username().send_keys(username)def input_pwd(self,pwd):self.page_login.find_pwd().send_keys(pwd)def input_vcode(self,code):self.page_login.find_vcode().send_keys(code)def click_login_btn(self):self.page_login.find_login_btn().click()# 业务层# 输入用户名密码验证码 点击登录
class LoginProxy(object):def __init__(self):self.handle_login = HandleLogin()def login(self,username,pwd,code):self.handle_login.input_username(username)self.handle_login.input_pwd(pwd)self.handle_login.input_vcode(code)self.handle_login.click_login_btn()

脚本执行代码 创建test_login

# from selenium import webdriverfrom po.page_home import HomeProxyfrom po.page_login import LoginProxyfrom utils import UtilsDriver,get_dataimport timeimport pytestimport allure@allure.feature("登录功能")class Test_login:def setup_class(self):self.login_p=LoginProxy()self.home_p=HomeProxy()def setup(self):# 进入首页UtilsDriver.get_driver().get("http://127.0.0.1/")# 进入到login界面self.home_p.go_login_page()def teardown_class(self):time.sleep(2)UtilsDriver.quit_driver()@pytest.mark.parametrize(["username","pwd","code","asrt_msg"],get_data())@allure.story("登录用户名错误")def test_login_username_error(self,username,pwd,code,asrt_msg):self.login_p.login(username,pwd,code)time.sleep(1)# 登录是否成功的预期结果res = UtilsDriver.get_msg()assert asrt_msg in res

(6)执行测试用例

可以使用pytest控制测试用例的执行

@pytest.mark.parametrize([“username”,“pwd”,“code”,“asrt_msg”],get_data())

[pytest]
addopts = -s --alluredir report
testpaths = ./script
python_files = test_*.py *test.py
python_classes = Test_*
python_functions = test_*

(7)生成测试报告

可以使用allure生成测试报告

PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助,有需要的朋友你可以关注个人公众号:程序员一凡 获取软件测试资源。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近100个G。

☑ 215集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

Web自动化测试怎么做?Web自动化测试的详细流程和步骤相关推荐

  1. Web自动化测试如何做?Web自动化测试的详细流程和步骤

    一.什么是web自动化测试 自动化(Automation)是指机器设备.系统或过程(生产.管理过程)在没有人或较少人的直接参与下,按照人的要求,经过自动检测.信息处理.分析判断.操纵控制,实现预期的目 ...

  2. 软件测试之Web自动化测试怎么做?Web自动化测试的详细流程和步骤

    1.什么是web自动化测试 自动化(Automation)是指机器设备.系统或过程(生产.管理过程)在没有人或较少人的直接参与下,按照人的要求,经过自动检测.信息处理.分析判断.操纵控制,实现预期的目 ...

  3. golang 还是php web,golang适合做web开发吗?

    慕姐8265434 适合.框架足够成熟了 A Survey of 5 Go Web Frameworks小型项目你甚至不用框架,用net/http http - The Go Programming ...

  4. fiash星空动画制作_三维动画制作的详细流程

    三维动画制作的详细流程: 随着互联网的发展,三维动画技术更新,三维动画制作技术在生活中运用十分广泛,我们经常在一些电视广告,影视电影中会看到一些三维特效,因为震撼的真实感很受大众喜欢.三维动画技术让视 ...

  5. 偷懒大法好,用 selenium 做 web 端自动化测试

    自动化入门介绍 实验介绍 本次实验主要介绍什么是自动化测试和自动化测试工具 selenium.然后介绍怎么安装浏览器驱动工具 webdriver,并且开发一个简单的自动化测试脚本,体会自动化测试是怎么 ...

  6. Postman做web接口自动化测试 一

    Postman做web接口自动化测试   一 一.Postman做Web接口自动化测试的优势 1.Postman是Chrome的一个应用.使用Postman,可以快速构建请求.保存以供以后使用,并分析 ...

  7. 给你一个网站,你如何来做自动化测试的?Web网站测试流程及方法

    给你一个网站,你如何来做自动化测试的?今天小编来给大家科普一下Web网站测试流程及方法. 首先,查找需求说明.网站设计等相关文档,分析测试需求.制定测试计划,确定测试范围和测试策略.一般包括以下几个部 ...

  8. Web端与App端自动化测试框架

    Web端与App端自动化测试框架 一.Web端与App端的区别 想了解Web端与App端自动化测试框架的区别 ,那么我们就要先来了解Web和App的区别.Web项目一般都是B/S架构,基于浏览器的,而 ...

  9. Web自动化测试简介及web自动化测试实战交教程

    一.认识web自动化测试 1.什么是自动化测试? 自动化测试的概念: 软件自动化测试就是通过测试工具或者其他手段,按照测试人员的预定计划对软件产品进行自动化测试,他是软件测试的一个重要组成部分,能够完 ...

最新文章

  1. VS2013和MATLAB相互调用混合编程
  2. SPOJ 27020 GST Calculator
  3. Linux内核工程师是怎么步入内核殿堂的?
  4. 织梦dedecms小说网站源码|带采集+搭建方式
  5. 小提琴机器人拉法_小提琴的拉琴姿势探讨
  6. php 添加透明水印,php加水印的代码(支持半透明透明打水印,支持png透明背景)
  7. linux安装weget命令,linux安装wget命令
  8. 第4章第3节:如何插入或删除表格的行与列 [PowerPoint精美幻灯片实战教程]
  9. python 前缀和总结
  10. 【C++】C++中头文件使用双引号与书名号的区别
  11. [Java FX 2] Stage with rounded corners and background image
  12. LookupError: Resource omw-1.4 not found. nltk3.7查找近反义词解决方法
  13. mysql写周报_mysql 数据分析如何实现日报、周报、月报和年报?
  14. 2021-12-01 WPF上位机 103-西门子S7协议之V区,DB区读数据方法流程解析
  15. 科研小白如何做好科研(内附一些科研实用工具)
  16. cs,ds,ss,es?即cs,ds,ss,es的区别
  17. WinMail邮件服务器(客户端)环境搭建与配置
  18. 阿德莱德大学语言班成绩为C,2020年阿德莱德大学托福成绩要求分数是多少
  19. 《我的助理辞职了》,最近非常火的一篇文章,受益颇多,共勉!
  20. TCP/IP相关的那些事儿

热门文章

  1. 最新二级域名分发美化版V3.1.0源码 附搭建教程
  2. EDM营销的三个基本因素
  3. Java中如何避免死锁呢?
  4. 【python】python中的join用法
  5. Android实战开发:自定义照相机
  6. 更新windows10系统PS无法打开,安装PS软件后无法直接拖动图片到ps里面的解决方案
  7. 计算机操作系统 --- 共享资源分配与银行家算法java篇
  8. Python面相对象以英雄联盟讲解
  9. bilibili视频列表名字太长显示不全的解决方法
  10. 2018年全国多校算法寒假训练营练习比赛(第一场)