Python自动化测试实战系列之WiFi测试一

简介: 用Python设计一个自动化测试WiFi射频指标的脚本工具

于大部分从事硬件工作的人而言,可能不太会去涉及软件相的开发,更多的是工具的使用,但对于测试而言,会一点软件开发可以比较灵活的提高工作效率,特别是对于大量的重复性机械操作类的测试任务,一般都要寻求自动化的解决方案,不然测试人员会痛不欲生且效率低下。

近期开始写一下用Python做自动化测试实战操作系列,一边分享也一边巩固一下这会是一个系列,尽量写的详细和细节一点就算不了解的人都可以尝试从这里开始有一些收获。第一个系列会写如何用Python去控制Litepoint的IQxel系列仪表去做WiFi的射频自动化测试。    

首先第一期讲讲我们要用的语言Python,简单来说,一个脚本语言,可读性强,最重要的是,是初学者的语言,入门极简,这对于没有编程基础的人来说相当友好,对于我们从事硬件的来说,够用好用最重要,学的多深多牛逼不是我们的重点,不花大力气永远也比不了搞专业搞软件的。    

首先安装Python,去官网下载Welcome to Python.org,在Downloads标签里找适合自己的操作系统的版本,现在基本都是64位的系统,所以推荐选择windows installer(64-bit)这个下载即可,特别提一下,Python有2.7.x和3.x两个大的版本,但是2.7.x和3.x有些语法并不兼容,简单来说就是两种版本的脚本可能无法直接交换运行,并且2.7.x早已经不再更新维护了,但是网上有很多早期资料都是2.7.x版本的,查找资料的时候注意甄别一下,所以现在都推荐用3.x以上版本,下载最新的安装即可,安装没有什么特别需要注意的,点两下就好了,可以勾上加入环境变量选项。    

安装完成后我们的PC上就可以执行Python脚本了。接下来讲Python另一个最大的优势之一,丰富的跨平台的库,大量第三方库,我们俗称“轮子”,就是我们想做一个脚本,很多功能并不需要我们完全重新开发,直接把现成的“轮子”拿过来就可以跑,这对于非专业的软件开发者来说真是省了大力气,我们只需要学一下怎么用就好了,一般“轮子”都带有详细的帮助手册,完美!    

轮子怎么用后面再提,先来说一下IDE工具,我们要编写脚本需要一个工具,这就是IDE(集成开发环境),IDE那也是相当的多,就不一一介绍了,就说一下我用过的几个IDE的差异和特点,前期可以都体验一下,然后结合个人习惯和软件特性选择一款。最有名的应该是Pycharm了,我喜欢它的环境和库隔离操作方式,我个人的理解,可能名称不一定准确这个功能IDE基本都有,但是Pycharm操作方式比较好用,主要功能就是它可以根据每一个项目选择Python的版本和项目所要用的库都独立开来,有一个好处就是你如果需要打包项目到别的机器上运行的时候会很友好,比较省空间。第二个VSCode,主要特点就是免费,然后有很多插件可以用,个人推荐,省心省事儿。第三个是jupyter,一般随Anaconda安装而安装,最出名的就是在线调试,只要有网络连接,可以随时进行代码测试。

选择好IDE之后我们就可以正式开始创建python项目了,这里选VSCode来介绍。VSCode去Visual Studio Code - Code Editing. Redefined下载,安装好打开VSCode之后我们需要在Extensions里安装Python extension,可以在上面搜索栏中搜索python,点击Install安装即可,安装好之后我们就可以新建Python项目了。

前面我们提到了“轮子”,那么“轮子”如何使用呢?很简单,首先需要安装“轮子”的库,Python里安装第三方库的方法是使用pip,使用方法是打开一个Windows的命令行窗口,输入"pip install 库名"回车即可开始自动搜索并下载安装,当然需要联网,还有就是前面安装的时候已经提前添加了Python的环境变量,要不然就要到安装目录下去执行pip安装了。


pipinstallpyvisa

至于找“轮子”就要看项目的需求了,然后根据关键词去搜索即可,就我们即将要做的实战项目来说,我们需要可以控制仪表的接口库,还有需要控制被测设备的接口库。对于仪表而言,一般来说通用的控制接口是VISA,主流仪表基本都支持,百度的VISA定义如下,可以了解一下,Python里推荐库为pyvisa,因为有很多不同的“轮子”可能实现的功能是相同的,找主流的使用,维护和更新都比较好。

VISA(Virtual Instrument Software Architecture,简称为"Visa"),即虚拟仪器软件结构,是VXI plug&play联盟制定的I/O接口软件标准及其规范的总称。VISA提供用于仪器编程的标准I/O函数库,称为VISA库。VISA函数库驻留在计算机系统内,是计算机与仪器的标准软件通信接口,计算机通过它来控制仪器。

百度百科

而对于我们的被测设备而言,可能方式就比较多样化了,但是主流的大多数都是lan, usb之类,找对应的接口,这里罗列一些主流的三方库名,可以根据实际情况安装。

接口
库名
usb
serial
ssh
paramiko
telnet
telnetlib

“轮子”装好,我们就可以在脚本里使用了,使用的方法也很简单,首先import加载库,然后下面直接调用库中的功能函数即可。各个函数和实现的功能可以通过文档去了解,下面举个telnet的调用的简单例子,可以用来连接被测设备

importtelnetlib#导入telnetlib库tn = telnetlib.Telnet()  #创建一个对象tn.open(host, port=23)  #打开一个会话,host是主机地址,port是端口号tn.read_until(b'login:') #使用 read_until() 方法等待服务器发送的数据tn.write(username.encode('ascii')+b'\n') #使用 write() 方法向 Telnet 服务器发送数据

    同样仪表端也可以类似的方式进行连接和控制。

importpyvisarm=pyvisa.ResourceManager()  
ins=rs.open_resource('TCPIP0::%s::hislip0::INSTR'%ip)
ins.write('*RST')  #仪表复位ins..query('*IDN?') #查询仪表信息

对于仪表的控制指令,我们可以使用仪表的SCPI指令集,相对简单和易于使用,并且主流的仪表一般都会附带查询SCPI指令的相关方式,可能是文档,也可能直接在仪表上按键时直接显示,IQ系列设备通过网页进入仪表测试界面,然后在admin tools里有相应文档可以查询。关于SCPI的定义参考如下:

可编程仪器标准命令(英语:Standard Commands for Programmable Instruments,缩写:SCPI)定义了一套用于控制可编程测试测量仪器的标准语法和命令。

百度百科

纸上得来终觉浅,绝知此事要躬行。第一期就写这么多,有兴趣的可以试试,上面的代码不一定能直接用,很有可能会报错,但是在检查错误的过程中你会发现学习的效果会更好,我个人的体验是这样的,下期再会!


相关文章
|
8天前
|
敏捷开发 测试技术 持续交付
探索软件测试中的自动化与持续集成
在快速迭代的软件开发环境中,自动化测试和持续集成(CI)已成为确保产品质量和加速交付的关键策略。本文将深入探讨自动化测试的基本原理、实施步骤以及它如何与持续集成流程相结合,以提高软件开发的效率和可靠性。我们将通过实际案例分析,展示自动化测试和CI的最佳实践,以及它们如何帮助企业实现更快的市场响应时间和更高的客户满意度。
45 16
|
5天前
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
20 4
|
10天前
|
jenkins 测试技术 持续交付
软件测试中的自动化与持续集成:提升效率与质量的关键
在快节奏的软件开发环境中,自动化测试和持续集成已经成为不可或缺的部分。本文将探讨自动化测试和持续集成的重要性,以及它们如何协同工作以提高软件开发的效率和质量。通过分析自动化测试的策略、工具选择以及持续集成的实践,我们将揭示这些技术如何帮助开发团队快速响应变化,减少错误,并加速产品上市时间。
|
9天前
|
人工智能 前端开发 测试技术
探索软件测试中的自动化框架选择与优化策略####
本文深入剖析了当前主流的自动化测试框架,通过对比分析各自的优势、局限性及适用场景,为读者提供了一套系统性的选择与优化指南。文章首先概述了自动化测试的重要性及其在软件开发生命周期中的位置,接着逐一探讨了Selenium、Appium、Cypress等热门框架的特点,并通过实际案例展示了如何根据项目需求灵活选用与配置框架,以提升测试效率和质量。最后,文章还分享了若干最佳实践和未来趋势预测,旨在帮助测试工程师更好地应对复杂多变的测试环境。 ####
31 4
|
9天前
|
机器学习/深度学习 人工智能 jenkins
软件测试中的自动化与持续集成实践
在快速迭代的软件开发过程中,自动化测试和持续集成(CI)是确保代码质量和加速产品上市的关键。本文探讨了自动化测试的重要性、常见的自动化测试工具以及如何将自动化测试整合到持续集成流程中,以提高软件测试的效率和可靠性。通过案例分析,展示了自动化测试和持续集成在实际项目中的应用效果,并提供了实施建议。
|
15天前
|
机器学习/深度学习 前端开发 测试技术
探索软件测试中的自动化测试框架选择与优化策略####
本文深入探讨了在当前软件开发生命周期中,自动化测试框架的选择对于提升测试效率、保障产品质量的重要性。通过分析市场上主流的自动化测试工具,如Selenium、Appium、Jest等,结合具体项目需求,提出了一套系统化的选型与优化策略。文章首先概述了自动化测试的基本原理及其在现代软件开发中的角色变迁,随后详细对比了各主流框架的功能特点、适用场景及优缺点,最后基于实际案例,阐述了如何根据项目特性量身定制自动化测试解决方案,并给出了持续集成/持续部署(CI/CD)环境下的最佳实践建议。 --- ####
|
16天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
58 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
5天前
|
敏捷开发 Java 测试技术
软件测试中的自动化策略与实践
在快速迭代的软件开发周期中,自动化测试是确保产品质量和提升开发效率的关键。本文将深入探讨自动化测试的重要性,介绍实用的自动化测试框架,并通过一个具体的代码示例,说明如何实现一个简单的自动化测试脚本。
25 12
|
6天前
|
开发者 Python
使用Python实现自动化邮件通知:当长时程序运行结束时
本文介绍了如何使用Python实现自动化邮件通知功能,当长时间运行的程序完成后自动发送邮件通知。主要内容包括:项目背景、设置SMTP服务、编写邮件发送函数、连接SMTP服务器、发送邮件及异常处理等步骤。通过这些步骤,可以有效提高工作效率,避免长时间等待程序结果。
43 9
|
6天前
|
运维 监控 网络安全
自动化运维的崛起:如何利用Python脚本简化日常任务
【10月更文挑战第43天】在数字化时代的浪潮中,运维工作已从繁琐的手工操作转变为高效的自动化流程。本文将引导您了解如何运用Python编写脚本,以实现日常运维任务的自动化,从而提升工作效率和准确性。我们将通过一个实际案例,展示如何使用Python来自动部署应用、监控服务器状态并生成报告。文章不仅适合运维新手入门,也能为有经验的运维工程师提供新的视角和灵感。
下一篇
无影云桌面