Web自动化测试的详细流程步骤

本文详细介绍了 Web 自动化测试的流程和步骤,通过阅读,你可以全面了解 Web 自动化测试的流程和步骤。

用 Apifox,节省研发团队的每一分钟

Web自动化测试的详细流程步骤

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

Web 自动化测试

什么是自动化测试

首先说说什么是自动化测试,自动化测试指的是,不需要人过多干预的测试,可以让机器去帮我们去做大量的、重复的、频繁的、复杂的测试工作,进而大大提升整体的测试效率,自动化测试涉及硬件、软件,范围非常大,说明它的受欢迎度非常高,应用程度非常高。

为啥要 Web 自动化测试

近几年,前端发展的速度非常快,主  要体现在几个方面:

  • 前端产品越来越多,竞争越来越激烈
  • 前端技术自我要求越来越严格
  • 整体技术流程越来越规范化
  • 用户对于产品的体验要求越来越高

所以在一个产品的制作过程中,自动化测试是必不可少的一个环节,他相当于审核产品质量的一个关卡,测试过程中,及时发现产品的一些问题,并马上修复。

Web 自动化测试工具选择

现在比较受欢迎的一套 Web 自动化测试框架,基本上就是这几样:

  • Chrome
  • Chrome Driver
  • Python
  • Selenium

Web 自动化测试环境安装

  • Chrome浏览器的下载
  • Chrome Driver 需要到 npmmirror.com/ 下载
  • Python 环境的准备:
Python

Web 自动化测试的方式

Web 自动化测试的进行单位测试跟以前功能测试差不多,都是遵从等价类划分、边界值、因果图、场景法等等就好了。

Web 自动化测试的实施,我们可以使用 PO 这个模式来设计。

PO 意思就是 Page Object,也就是以页面为一个对象进行封装,这样做可以减少冗余代码,提高可读性、可维护性,后面有调整的话,直接修改对应的页面对象即可。

PO 模式会把一个 page 分成三个层级:

  • 对象库层:定位元素
  • 操作层:元素操作
  • 业务层:批量完成操作

Web 自动化测试的流程与实施

Web 测试的流程具体分为几步:

  • 第一步:准备好需要测试的数据
  • 第二步:设置好测试的预期效果
  • 第三步:使用一些工具进行测试
  • 第四步:得出结果和报告

准备测试数据

就拿登录来举例的话,我准备以下这些测试数据。

[ {    "username": "21888888888",    "pwd": "123456",    "code": "8888",    "ast_msg": "no match",    "desc": "error" },  {    "username": "12888888888",    "pwd": "123456",    "code": "8888",    "ast_msg": "no match",    "desc": "error"  },]

编写测试脚本

我们创建一个 .py 脚本,进行测试代码的编写。

 from selenium.webdriver.common.by import By

 from utils import UtilsDriver
 from 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()
 # from selenium import webdriver
 from po.page_home import HomeProxy
 from po.page_login import LoginProxy
 from utils import UtilsDriver,get_data
 import time
 import pytest
 import allure
 
 @allure.feature("login_page")
 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/")
       
         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("error")
     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

运行测试用例

使用 Pytest 进行测试用例的运行。

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

并且使用 allure-pytest 插件,进行测试报告的生成。

测试报告

API 测试

进行完 UI 的测试,我们还需要对 API 进行测试,因为 API 是前端必不可少的一部分,没有 API ,那前端页面将得不到有效的渲染。

我们可以借助一些 API 工具来进行测试,比如 Apifox

使用 Apifox 进行 API 测试

创建请求、设置预期、单个测试

我们需要创建一个请求,接着设置必要参数 接口名、接口路径、接口请求方法。

并且要设置测试的条件,比如 断言、脚本,我这里通过脚本的形式来做测试,判断数据的正确性,看返回的数据能不能达到我的预期。

创建请求

我们可以单个单个接口地去测试,比如像我这样,直接去发送一个请求,但是如果有几十个接口,那我不就要测 50 遍,太麻烦了~

运行结果

自动化测试

Apifox 提供给我们自动化测试的功能,我们只需要将你的所有接口导入到测试用例里面,就可以通过运行测试用例,来进行批量接口的测试。

当然,我们需要填写一些运行的参数,比如循环数、延迟数、环境、线程数等等。

填写信息

点击运行之后,可以进行批量的接口测试,并得到:

  • 整体的测试结果
  • 每个接口的测试结果
测试报告

关于Apifox

欢迎体验一下,完全免费的哦:在线使用 Apifox

Apifox 是一体化 API 协作平台,可以实现 API 文档、API 调试、API Mock、 API 自动化测试,是更先进的 API 设计/开发/测试工具。

Apifox 提供了一种全面的 API 管理解决方案。使用 Apifox ,你可以在统一的平台上设计、调试、测试以及协作你的 API,消除了在不同工具之间切换和数据不一致的问题。

个人使用体验还是不错的,推荐使用~