🌈 赏金任务 - Python自动化实现的思路?

赏金任务每周更新,请持续关注哦 :love_letter:

题目

  • 模拟面试场景,面试官提问以下问题,你如何回答。
  • Python自动化实现的思路?

参与方式

  • 本帖下方回复你的答案即可

赏金

  • 100元京东购物卡

活动时间

  • 2023年3月27日 - 2023年4月2日

本周赏金任务汇总: 🌈 赏金任务发布 2023-03-27

本问题参与赏金活动,详情点击 :rainbow: 赏金活动上线啦 丨做赏金任务挑战千元奖金 查看活动介绍

1 个赞

一套接口/UI自动化基本是下面这个思路,可能会有一些区别,但大致方向应该差不多

1、数据分离:

将数据(请求参数、请求路径、配置参数、收发邮件等)单独提出,单独管理

2、requests、selenium库二次封装:

requests模型化,PO分层思想,使没有python基础的测试人员也可以编写用例

3、公共方法封装:

例如邮件发送方法、webdrive封装、数据库连接方法…

4、检查点封装:

二次封装断言方法

5、用例设计:

设计单场景、多场景、步骤依赖等,丰富case多样性,做到尽量覆盖

6、用例执行:

实现单个或批量执行用例

7、任务调度:

引入任务调度工具APScheduler、Crontab等

8、报告:

集成jenkins,定时发送测试报告或钉钉群报告

1 个赞

Python自动化实现的思路?

  1. 先确定自动化的测试框架,目前,主流的python自动化测试框架有Robot Framework/pytest,银行或通信公司等一般用的较多的是RF,RF属于关键字驱动,便于用例管理和自带测试报告,而且对测试人员的代码要求不高;互联网公司同学用的较多有pytest,使用起来更方便一下,RF的功能pytest
    都有,但是pytest对测试人员的python水平要求高一点

  2. 确定好自动化框架后,编写的时候,注意测试数据分离,便于进行管理

  3. 对公共方法进行封装,比如:读取文件,上传文件,数据库连接方式,对服务器配置ssh操作等方法

  4. 对业务接口封装,单元业务的流程封装等

  5. 对于公共变量,可以提取到单独配置文件,比如:RF编写时,可以-V引入环境变量文件

  6. 测试用例编写时,注意前置和后置处理:setup中构造测试场景,构造测试数据,tesrdown中恢复配置,清除测试数据

  7. 测试用例的编写,大多时候难点在于校验点比较难实现,有些需要捞日志进行判断,确保自动化用例的断言全面且准确,自动化用例也可以进行评审,确保代码质量

  8. 自动化代码可以统一管理,提交到git,再集成到CI,定时运行,推送到相关人员

9.自动化代码有些对开发的代码覆盖率有要求,就需要测试代码覆盖到开发代码的每个分支,这时候会有大量的异常测试用例,构造异常一般通过对下级网元打桩的方式,这就要求测试人员也定制化各种桩程序,python中常用的http服务端框架是Flask,socket服务端,可以使用socket编程实现。

选型

选择适合公司业务对应的python框架,比如接口、UI的pytest、unittest、selenium、appium

哪些功能要自动化

梳理功能清单,明确要做自动化的范围

搭建自动化框架内容,PO思想等

Python自动化实现的思路是通过编写Python脚本以及相关库或工具实现自动化测试的过程。Python是一个拥有丰富的类库和工具可以用于开发自动化测试平台。其中,Django是一款Python Web框架,可以用于快速开发Web应用程序,同时也可以用于开发自动化测试平台。在自动化测试中,我们使用Python编写各种脚本,然后通过调用Python库或工具实现自动化测试。

我在过去的4年中一直从事自动化测试工作,使用Python+Django开发了多个自动化测试平台和工具。其中,我设计和开发的一个基于Django框架的自动化测试平台覆盖了2000多个自动化用例,并且覆盖率达到了90%以上。该平台可以定时运行测试用例,自动生成测试报告,实现了对自动化测试过程的自动化管理。我还使用Python编写了自动化测试工具,包括自动化性能测试工具、自动化安全测试工具等,有效提高了自动化测试效率和测试质量,并在公司内部推广。

在设计自动化测试框架和平台时,我遇到了一些问题,比如如何处理测试用例的依赖关系、如何优化测试执行速度等。我通过设计顶层的测试用例执行引擎,实现了测试用例的灵活组合和依赖管理,同时使用多线程和分布式架构等技术优化测试执行速度,提高了自动化测试效率和效果。

在自动化测试落地过程中,我需要与其他团队紧密合作,才能实现自动化测试在公司内部的推广。我们与开发团队合作,将自动化测试用例集成到开发流程中,并将自动化测试结果与代码仓库进行集成,确保每次代码提交都经过自动化测试的验证。此外,我还在测试团队内部开展了自动化测试培训,提高了全体测试人员的自动化测试能力。

总的来说,我的自动化测试工作成果包括:

设计和开发了多个自动化测试平台和工具,实现了自动化测试管理和自动化测试工作的高效执行;
覆盖了2000多个自动化用例,并且覆盖率达到了90%以上;
与其他团队紧密合作,实现了自动化测试在公司内部的广泛应用。
以上成果通过具体的数据和实际情况来体现和证明,包括自动化用例的数据覆盖率、执行效率的提高等。通过这些工作,我在测试开发领域获得了丰富的经验和成果,同时也可以提供给公司更高效的测试服务,我相信,以我的经验和技能,能够为贵公司的测试质量保障工作做出积极的贡献。

Python自动化测试常用于Web应用、移动应用、桌面应用等的测试

Python自动化实现思路通常分为以下几步:
1. 确定自动化测试的范围和目标:
首先需要明确需要进行自动化测试的范围和目标,包括测试场景、测试用例、测试数据等。

2. 选择自动化测试工具和框架:
根据测试目标和需求,选择适合的自动化测试工具和框架,例如:Selenium、Appium、Requests等。

3. 编写测试用例:
根据测试目标和需求,编写自动化测试用例,包括测试场景、测试步骤、预期结果等。

4. 封装测试用例和测试数据:
将编写好的测试用例和测试数据进行封装,使其具有可重用性和可扩展性。

5. 执行测试用例:
使用自动化测试工具和框架执行测试用例,记录测试结果和测试日志。

6. 分析测试结果:
根据测试结果和日志进行测试结果分析,确定测试是否通过或失败,并记录测试缺陷。

7. 优化测试用例和测试框架:
根据测试结果和反馈优化测试用例和测试框架,提高自动化测试的效率和稳定性。

8. 部署和使用:
将自动化脚本部署到服务器或本地计算机,并使用定时任务等方式进行定时运行和监控,以实现长期稳定的自动化任务。在部署过程中,需要考虑如何保护数据安全、如何进行任务调度和监控、如何进行错误处理和恢复等问题,以确保自动化任务的可靠性和安全性。在使用过程中,需要及时记录和分析自动化任务的运行情况,以便进行优化和改进。

通过购物车使用Python实现自动化的思路:

以下是一个简单的购物车自动化测试的实现思路和测试链条,其中包括接口自动化和UI自动化:
1. 需求分析

首先,需要了解购物车的功能需求,包括添加商品、删除商品、结算商品等操作,以及需要验证的功能点和边界条件等。

2. 测试用例设计

根据需求分析,设计相应的测试用例,包括正常场景和异常场景的测试用例。
如:

  • 添加商品:测试添加一个或多个商品到购物车,验证购物车中的商品数量和价格是否正确。
  • 删除商品:测试从购物车中删除一个或多个商品,验证购物车中的商品数量和价格是否正确。
  • 结算商品:测试结算购物车中的商品,验证结算金额是否正确,并且验证结算后购物车中的商品数量是否正确。

3. 接口自动化

对于购物车的接口,可以使用Python的requests库进行接口自动化测试。具体实现步骤如下:

  • 安装requests库
  • 编写接口测试用例,包括请求参数、请求方法、请求头、请求体、响应结果等信息。
  • 对于需要登录的接口,可以使用Python的requests.Session来维持会话状态。
  • 对于需要验证接口性能的接口,可以使用Python的time库来计算接口响应时间等指标。

4. UI自动化

对于购物车的UI界面,可以使用Python的Selenium库进行UI自动化测试。具体实现步骤如下:

  • 安装Selenium库和对应的浏览器驱动,例如:ChromeDriver。
  • 编写UI自动化测试用例,包括打开网页、定位元素、操作元素、断言结果等信息。
  • 对于需要登录的页面,可以使用Selenium的Cookies机制来维持会话状态。
  • 对于需要验证页面性能的测试用例,可以使用Python的time库来计算页面加载时间等指标。

5. 集成测试

将接口自动化和UI自动化测试集成在一起,构建一个完整的测试链条。例如:先进行接口自动化测试,验证接口的正确性和稳定性;然后进行UI自动化测试,验证页面的正确性和稳定性;最后进行集成测试,验证整个购物车的流程和性能。

6. 持续集成

使用持续集成工具,例如:Jenkins,将购物车自动化测试集成到持续集成流程中,实现自动化测试的自动执行和结果分析。可以设置定时触发或者通过Git提交来触发自动化测试的执行。

当我们进行 Python自动化实现时,一般会按照以下步骤来进行,如下图所以:
47f19d33ea7be1c0eb5c779c5c2bed7

1. 安装必要的软件:

  • 安装 Python IDE,推荐使用 PyCharm、Eclipse 等;
  • 安装浏览器驱动,如 ChromeDriver、FirefoxDriver 等,确保浏览器驱动版本与浏览器版本兼容;
  • 安装 Python 测试框架,如 Pytest、unittest 等;
  • 安装自动化测试工具,如 Selenium、Appium 等。

Selenium构架原理:
ba554ba5371f19fb540041547cbda16

在客户端(client)完成 Selenium 脚本编写,将脚本传送给 Selenium 服务器,Selenium 服务器使用浏览器驱动(driver)与浏览器(browser)进行交互。

Appium架构原理如下所示:
0dc184c17bc9e5dc310ca4b5ddf665e

  • client端也就是我们 test script是我们的webdriver测试脚本。
  • 中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似,Appium⽀持标准的WebDriver JSONWireProtocol。在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调⽤用对应的框架响应操作。
  • appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上.Bootstrap监听4724端口并接收appium 的命令,最终通过调⽤用UiAutomator的命令来实现。
  • 最后Bootstrap将执行的结果返回给appium server。
  • appium server再将结果返回给 appium client。

2. 编写测试用例:

  • 确定测试场景,如登录、注册、搜索等;
  • 编写测试用例代码,包括测试输入、预期输出、测试方法、断言等;
  • 使用自动化测试注解(如 pytest.mark、@unittest.skip 等)和参数来管理和构建测试用例。

3. 编写自动化测试脚本:

  • 使用 Selenium、Appium 等自动化测试工具的 API 来获取页面元素和执行操作;
  • 使用 Python 编程语言实现操作逻辑,其中包括元素定位、操作行为、等待、断言等;
  • 利用 Python 的测试框架,如 Pytest、unittest 等,来运行测试用例和管理测试过程。

4. 运行自动化测试脚本:

  • 将编写好的测试脚本和测试用例放到合适的目录下;
  • 根据所选用的测试框架,在命令行或 IDE 中运行测试脚本;
  • 查看测试报告,以及可能出现的测试错误和异常信息。

5. 查看自动化测试结果:

  • 分析自动化测试报告,判断测试用例的通过、失败、错误、跳过等情况;
  • 实现自动化测试报告的可视化和监控,如使用 JUnit、Allure 等测试报告框架;
  • 根据自动化测试结果进行优化测试用例和测试脚本,以提高自动化测试的效率和可靠性。

总的来说,在进行 Python 自动化实现的过程中,需要掌握 Python 基础语法、面向对象编程、自动化测试工具和测试框架等知识和技能。同时,还需要不断学习新的技术和应用,以优化测试流程和提高测试质量