关闭

Python自动化?软件测试工程师竟然用它做这些

发表于:2024-3-19 09:46

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:程序员小濠    来源:知乎

  软件测试人员能用Python做的事情很多,最常见的就是下面四项:
  1)做自动化测试web自动化,app自动化,接口自动化】;
  2)做性能测试
  3)开发小工具;
  4)搭建测试平台。
  Python已经成为最受欢迎的程序设计语言之一,因为其具有简单易学、免费开源、且功能强大的特点。软件测试人员的编程能力相对较弱,Python语言又比较容易上手,所以如果想学习编程语言的话Python是首选。
  下面就带大家了解下python是怎么实现上述四件事情的。注意,如果想实现文中代码的演示,请提前安装好python环境,大家可以在官网上按照步骤来安装。
  一、用Python做自动化测试
  对于软件测试人员来说,使用python最主要的就是来做自动化测试,提高测试的工作效率,保证产品的质量。自动化测试又可以分为几大方向:
  1)Web自动化测试;
  2)APP自动化测试;
  3)接口自动化测试。
  1. Web自动化测试
  当前市场上最主流的Web自动化测试工具就是Selenium,所以通过编写Python+Selenium脚本可以实现对Web项目的自动化测试。
  1.1 现在给大家做下简单的演示如何安装Selenium:
  以Windows系统为例,打开cmd命令行窗口输入命令:pip install selenium
  1.2 安装浏览器驱动的步骤:
  1.2.1 下载浏览器驱动
  ·各个驱动下载地址: http://www.seleniumhq.org/download/
  · 浏览器的版本和驱动版本要一致!
  1.2.2 把驱动文件所在目录添加到Path环境变量中
  1.3 入门示例需求:
  通过程序启动浏览器,并打开百度首页,暂停3秒,关闭浏览器。
  示例代码:
  # 导包 from selenium import webdriver import time 
  # 创建浏览器驱动对象 driver = webdriver.Chrome() 
  # 加载web页面 driver.get("http://www.baidu.com/") 
  # 暂停3秒 time.sleep(3) 
  # 关闭驱动对象 driver.quit()
  提示:当对一个企业级的项目实现Web自动化测试时,除了使用Python+Selenium之外,还需要学习一些测试框架来管理维护测试用例(如:UnitTest、PyTest),还需要学习PO模式采用面向对象的封装思想来封装要操作的页面,还需要学习数据驱动思想实现测试脚本和测试数据的分离,还可以引入日志收集等技术来协助测试。
  2. APP自动化测试
  当前市场上最主流的APP自动化测试工具就是Appium,所以通过编写Python+Appium脚本可以实现对APP项目的自动化测试。
  APP自动化测试的环境搭建相对比较复杂,需要安装的软件有:
  ·安装JDK
  · 安装Android SDK
  · 安装appium
  · 安装Appium-python库
  · 安装模拟器(或者使用真机)
  3. 接口自动化测试
  使用Python做接口自动化测试最常用的库是Requests,所以通过编写Python+Requests脚本可以实现接口自动化测试。
  3.1 安装Requests:
  以Windows系统为例,打开cmd命令行窗口输入命令:pip install requests 
  3.2 入门示例需求:
  通过程序发送请求调用百度搜索接口http://www.baidu.com/s?wd=python
  3.3 示例代码:
  # 导包 import requests
  # 发送GET请求 response = requests.get("http://www.baidu.com/s?wd=python") 
  # 获取响应数据 print("text=", response.text)
  提示:当对一个企业级的项目实现接口自动化测试时,除了使用Python+Requests之外,还需要学习一些测试框架来管理维护测试用例(如:UnitTest、PyTest),还可以采用分层的思想实现接口自动化测试框架的封装,还需要学习数据驱动思想实现测试脚本和测试数据的分离,还可以引入日志收集等技术来协助测试。
  二、用Python做性能测试
  在做性能测试时一般都会使用工具实现,比如使用Loadrunner、JMeter等工具。但是通过编写Python代码同样也是可以实现性能测试的。Python语言中比较流行的性能测试框架是Locust,一个开源的性能测试工具,在代码中定义用户行为,支持分布式和可扩展,通过Web页面可以实时查看测试细节。
  安装Locust:
  以Windows系统为例,打开cmd命令行窗口输入命令:pip install locustio 
  2示例代码:
  from locust import HttpLocust, TaskSet def login(l): l.client.post("/login", data={"username": "admin", "password": "123456"}) def logout(l): l.client.post("/logout") def index(l): l.client.get("/index") def profile(l): l.client.get("/profile") class UserBehavior(TaskSet): tasks = {index: 3, profile: 1} def on_start(self): login(self) def on_stop(self): logout(self) class WebsiteUser(HttpLocust): task_set = UserBehavior min_wait = 5000 max_wait = 9000 host = "http://192.168.1.2/bms"
  三、用Python开发小工具
  在实际的测试工作中经常需要处理一些测试数据,比如解析日志文件中数据,大批量生成操作数据库的sql语句等需求。通过编写Python代码可以非常方便的实现数据的处理,并且Python中有大量的第三方库也可以帮助我们解决很多问题。也可以开发一些在日常工作中经常使用的小工具,协助提高工作效率。
  小需求:实现在商品表中插入10000条数据的sql语句。
  示例代码:
  for i in range(10000): goods_name = f"小米手机{i}" count = 100 price = 1999 sql = f"insert into t_goods(goods_name,count,price) values('{goods_name}', {count}, {price});" print(sql)
  四. 用Python搭建测试平台
  使用Python也可以搭建自动化测试平台,这些平台能够服务于普通的测试人员,提高测试的效率,给公司创造价值。不过搭建测试平台对编程能力的要求会更高,除了学习一些自动化测试框架之外,还要再学习一些Web框架,比如:Django、Flask,以及如何通过代码实现数据库的操作。
  1、安装Flask:pip install Flask
  2、编写Flask程序:
  编写Flask程序:
  from flask import Flask, jsonify ? # 创建一个应用对象 app = Flask(__name__) # 定义视图函数,设置路由规则 @app.route("/index") def index(): return "hello" @app.route("/login", methods=["POST"]) def login(): data = { "code": 10000, "uid": 1001, "token": "xxx" } return jsonify(data) ? if __name__ == '__main__': # 启动WEB服务器 app.run()
  启动运行:像正常运行普通python程序一样即可。
  访问:打开浏览器,在地址栏里输入http://127.0.0.1:5000/index即可访问。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号