位置: IT常识 - 正文

Web自动化测试怎么做?Web自动化测试的详细流程和步骤(web 自动化测试)

编辑:rootadmin
Web自动化测试怎么做?Web自动化测试的详细流程和步骤 一、什么是web自动化测试

推荐整理分享Web自动化测试怎么做?Web自动化测试的详细流程和步骤(web 自动化测试),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:webui自动化测试,web自动化测试项目,web自动化测试的常用测试工具,web自动化测试项目,web自动化测试方法,web自动化测试项目,web自动化测试怎么做,web 自动化测试,内容如对您有帮助,希望把文章链接给更多的朋友!

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

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

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

二、web自动化测试的工具

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

浏览器一般选择chrome浏览器对应的driver(chromedriver)PythonSelenium库三、web自动化测试的环境安装浏览器安装 下载浏览器下一步按照就好了chromedriver 下载 可以到 npmmirror.com/注:100的大版本对的上就Ok了

四、web自动化测试的方法

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

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

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

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

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

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

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

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

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

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

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

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

下面我们已登录需求为例

(1)需求分析

Web自动化测试怎么做?Web自动化测试的详细流程和步骤(web 自动化测试)

这里我们以手机登录为例

(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 reporttestpaths = ./scriptpython_files = test_*.py *test.pypython_classes = Test_*python_functions = test_*

(7)生成测试报告

可以使用allure生成测试报告

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

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

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

本文链接地址:https://www.jiuchutong.com/zhishi/299753.html 转载请保留说明!

上一篇:深度学习--超参数(持续更新)(超参数有哪些调优方法)

下一篇:YOLOV7改进-添加EIoU,SIoU,AlphaIoU,FocalEIoU,Wise-IoU(yolov5增加检测层)

  • 微博如何设置陌生登录提醒(微博如何设置陌生人不能看我的关注)

    微博如何设置陌生登录提醒(微博如何设置陌生人不能看我的关注)

  • qq如何隐藏qq号让别人看不到(QQ如何隐藏QQ号码)

    qq如何隐藏qq号让别人看不到(QQ如何隐藏QQ号码)

  • vivo手机微信怎么加锁(vivo手机微信怎么显示在桌面上)

    vivo手机微信怎么加锁(vivo手机微信怎么显示在桌面上)

  • 充电宝5000毫安能充几次(充电宝5000毫安能充几次苹果手机)

    充电宝5000毫安能充几次(充电宝5000毫安能充几次苹果手机)

  • 苹果7p满电放一晚上没电了(苹果7plus电池充满一下子就没电了)

    苹果7p满电放一晚上没电了(苹果7plus电池充满一下子就没电了)

  • 没有鼠标怎么复制粘贴(没有鼠标怎么复制图片)

    没有鼠标怎么复制粘贴(没有鼠标怎么复制图片)

  • 支付宝怎么注销账号(支付宝怎么注销另外一个手机号)

    支付宝怎么注销账号(支付宝怎么注销另外一个手机号)

  • QQ撤回失败(qq撤回失败红色感叹号)

    QQ撤回失败(qq撤回失败红色感叹号)

  • 布丁机器人连不上wifi(布丁机器人连不上网)

    布丁机器人连不上wifi(布丁机器人连不上网)

  • ipad2019支持无线充电吗(ipad2019能不能无线充电)

    ipad2019支持无线充电吗(ipad2019能不能无线充电)

  • ipad白屏如何解决(ipad2018白屏)

    ipad白屏如何解决(ipad2018白屏)

  • qq以前的照片在哪里找(qq里以前的照片在哪里可以找到)

    qq以前的照片在哪里找(qq里以前的照片在哪里可以找到)

  • 开始运行快捷键(开始运行快捷键win7)

    开始运行快捷键(开始运行快捷键win7)

  • 微信设置禁止好友拉群(微信设置禁止好友邀请进群)

    微信设置禁止好友拉群(微信设置禁止好友邀请进群)

  • 苹果11来电话声音变小(苹果11来电话声音小怎么解决)

    苹果11来电话声音变小(苹果11来电话声音小怎么解决)

  • 华为手机怎么调整震动频率(华为手机怎么调时间和日期)

    华为手机怎么调整震动频率(华为手机怎么调时间和日期)

  • qq音乐怎么查看铭牌(qq音乐怎么查看一起听歌的记录)

    qq音乐怎么查看铭牌(qq音乐怎么查看一起听歌的记录)

  • wps怎么查找关键字(wps怎么查找关键字并标注)

    wps怎么查找关键字(wps怎么查找关键字并标注)

  • 微信运动需要有网络吗(微信运动需要联网吗)

    微信运动需要有网络吗(微信运动需要联网吗)

  • 怎么看微信年龄(怎么看微信年龄多大)

    怎么看微信年龄(怎么看微信年龄多大)

  • itunes在电脑上怎么下载(itunes在电脑上怎么下)

    itunes在电脑上怎么下载(itunes在电脑上怎么下)

  • 心绞痛的早期症状有哪些?(心绞痛的早期症状表现有哪些)

    心绞痛的早期症状有哪些?(心绞痛的早期症状表现有哪些)

  • Nodejs安装及npm配置(超详细)(nodejs安装与配置)

    Nodejs安装及npm配置(超详细)(nodejs安装与配置)

  • IP协议+以太网协议(ip和以太网的区别)

    IP协议+以太网协议(ip和以太网的区别)

  • 我国的税种有哪些种类
  • 销售货物开票及销售收入
  • 提前买礼物
  • 个人捐款合法吗
  • 驾驶员行车补贴开什么发票
  • 个体工商户如何注册
  • 商业用房怎么缴税
  • 高铁票丢失怎么办
  • 银行收回客户误扣的费用怎么处理?
  • 政府转账捐赠怎么做分录
  • 摊销房租账务处理
  • 企业所得税如何计提会计分录
  • 一直不营业的企业叫什么
  • 企业用给客户送礼吗
  • 固定资产报废后怎么处理
  • 外籍人士可以回国吗
  • 本期预收的货款属于
  • 平均净资产和净资产
  • 公司购车要交哪些税
  • 酒水专用发票税率
  • 材料成本差异如何分摊
  • ZF框架实现发送邮件的方法
  • 怎么修改wifi密码视频教程
  • 在php中,字符串有哪些表示形式
  • 高德地图api获取当前经纬度的城市地图
  • 增值税的具体内容包括
  • java多线程线程数控制在多少
  • python拆分文本文件
  • 以前年度损益调整结转到本年利润吗
  • 结构性存款随时可取么
  • 城建税退回怎么做分录
  • 小程序集合软件
  • 织梦的首页怎么换图片
  • 可以现金结算的业务
  • 交强险怎么报警
  • 公司注销持股1%的股东需要他签字吗
  • 超详细的mac重装系统教程
  • 营业外支出的会计要素
  • 存货在报表里是如何体现的
  • 未开票收入不入账以规避税收
  • 销售提成如何入账
  • 建筑行业收到的工程转给项目经理成本票从哪来
  • 网上交税已经缴费怎么退
  • 以资抵债如何实现债权和物权的转
  • 税费滞纳金计入营业外支出吗
  • 出口收汇核销单是什么意思
  • 捐赠的资产属于什么科目
  • 手工凭证模板
  • 附加税减免政策2023
  • 原材料暂估差异调整
  • 其他应收账款的会计分录
  • 商品降价如何进行投诉
  • 销售净利润怎么算
  • sql 复合语句
  • mysql怎么删除一定数量的记录
  • centosgui
  • Windows Server 2008虚拟技术说明
  • centos 怎么用
  • 安装系统需要什么工具
  • 桌面管理在哪里打开
  • linux添加新硬盘后网卡无法启动
  • mac系统有txt吗
  • linux系统添加新用户
  • 照相机文件名
  • windows 8连接vpn设置方法(消费者预览版)
  • 基于linux的mplayer音乐播放器
  • win7系统c盘占用空间大
  • 域名解析a记录怎么填
  • cocos2dx游戏开发进阶卷这本书怎么样
  • unity血条slider
  • 简述js和jquery的关系
  • nodejs 文件操作
  • Node.js中的construct构造函数
  • 正则表达式/a/g
  • jquery自定义组件
  • 电子税务局在手机上能登录吗
  • 社保欠缴可以放弃吗
  • 金税三期是什么内容
  • 广东电子税务局官网登录入口
  • 物业优质服务我们在行动
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设