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)定义了一套用于控制可编程测试测量仪器的标准语法和命令。

百度百科

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


相关文章
|
4天前
|
存储 数据采集 数据库
Python爬虫实战:股票分时数据抓取与存储
Python爬虫实战:股票分时数据抓取与存储
|
28天前
|
运维 Shell 数据库
Python执行Shell命令并获取结果:深入解析与实战
通过以上内容,开发者可以在实际项目中灵活应用Python执行Shell命令,实现各种自动化任务,提高开发和运维效率。
56 20
|
1月前
|
测试技术 数据库 Python
Python装饰器实战:打造高效性能计时工具
在数据分析中,处理大规模数据时,分析代码性能至关重要。本文介绍如何使用Python装饰器实现性能计时工具,在不改变现有代码的基础上,方便快速地测试函数执行时间。该方法具有侵入性小、复用性强、灵活度高等优点,有助于快速发现性能瓶颈并优化代码。通过设置循环次数参数,可以更准确地评估函数的平均执行时间,提升开发效率。
106 61
Python装饰器实战:打造高效性能计时工具
|
1月前
|
机器学习/深度学习 运维 数据可视化
Python时间序列分析:使用TSFresh进行自动化特征提取
TSFresh 是一个专门用于时间序列数据特征自动提取的框架,支持分类、回归和异常检测等机器学习任务。它通过自动化特征工程流程,处理数百个统计特征(如均值、方差、自相关性等),并通过假设检验筛选显著特征,提升分析效率。TSFresh 支持单变量和多变量时间序列数据,能够与 scikit-learn 等库无缝集成,适用于大规模时间序列数据的特征提取与模型训练。其工作流程包括数据格式转换、特征提取和选择,并提供可视化工具帮助理解特征分布及与目标变量的关系。
75 16
Python时间序列分析:使用TSFresh进行自动化特征提取
|
1月前
|
存储 安全 数据可视化
用Python实现简单的任务自动化
本文介绍如何使用Python实现任务自动化,提高效率和准确性。通过三个实用案例展示:1. 使用`smtplib`和`schedule`库自动发送邮件提醒;2. 利用`shutil`和`os`库自动备份文件;3. 借助`requests`库自动下载网页内容。每个案例包含详细代码和解释,并附带注意事项。掌握这些技能有助于个人和企业优化流程、节约成本。
70 3
|
2月前
|
数据采集 存储 XML
python实战——使用代理IP批量获取手机类电商数据
本文介绍了如何使用代理IP批量获取华为荣耀Magic7 Pro手机在电商网站的商品数据,包括名称、价格、销量和用户评价等。通过Python实现自动化采集,并存储到本地文件中。使用青果网络的代理IP服务,可以提高数据采集的安全性和效率,确保数据的多样性和准确性。文中详细描述了准备工作、API鉴权、代理授权及获取接口的过程,并提供了代码示例,帮助读者快速上手。手机数据来源为京东(item.jd.com),代理IP资源来自青果网络(qg.net)。
|
2月前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
213 61
|
2月前
|
IDE 测试技术 开发工具
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
在Python开发中,调试是提升效率的关键技能。本文总结了10个实用的调试方法,涵盖内置调试器pdb、breakpoint()函数、断言机制、logging模块、列表推导式优化、IPython调试、警告机制、IDE调试工具、inspect模块和单元测试框架的应用。通过这些技巧,开发者可以更高效地定位和解决问题,提高代码质量。
333 8
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
|
Python
PYTHON实战两数之和
1. 两数之和 难度:简单 收藏 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。
207 0
PYTHON实战两数之和
|
23天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码

热门文章

最新文章

推荐镜像

更多