RVR的测试本身并不复杂,可能测试时碰到DUT本身的问题更令人头疼,其实核心的环境架起来,流打起来,衰减器调一下,剩下的就是重复性的工作了,所以比较适合用自动化的方式去处理。衰减器的部分通常也不会很复杂,无外乎就是连接,调节,当你懂得如何通过一种方式去连接硬件设备之后,你会发现其他的也都是类似的,所谓的“一法通,万法通”可以适用。
本期介绍一下Python的一个内置库,叫做configparser,从字面意思就大概知道其作用,配置解析。对于自动化测试而言,很多配置是少不了的,并且很多不同的测试形态都是通过修改配置文件来调整的,所以我们可以通过configparser这个库来进行一系列操作。
我们常用ini文件作为配置文件,把相应的参数在文件中罗列,比如对于RVR测试来说,我们做一个简单的ini配置文件,把我们的一些需要用到的DUT信息,测试网卡信息,衰减器的信息等等罗列出来。
[DUT]
name = Mate60
ip = 192.168.1.1
username = root
password = 1q2w3e4r5t6y
[WirelessCard]
name = AX210
ip = 192.168.1.80
username = root
password = y6t5r4e3w2q1
[ATT]
start = 0
end = 0
step = 3
current_att = 0
ip = 192.168.1.88
我们来看一下如何用configpaser来处理这个ini文件。
import configparser
# 创建 config 对象
config = configparser.ConfigParser()
# 读取配置文件
config.read('rvr.ini')
# 获取所有的 sections
print(config.sections())
# 输出: ['DUT', 'WirelessCard', 'ATT']
# 获取并打印指定配置项指定KEY的值
section_name= 'DUT'
option_name = 'name'
print(config.get(section_name,option_name))
# 输出: 'Mate60'
从上面例子可以看出configpaser读取配置文件的一些操作,相对来说还是比较容易的,具体还有的功能可以去查阅一下手册,因为配置文件一般都有特定的格式,所以处理起来也方便。再来看一下写的操作例子。
# 添加 section 和对应的配置项
config['DUT] = {'ssid': 'wifi7-NB'}
config['ATT'] = {'current_att ': '30'}
# 写入配置文件
with open('rvr.ini', 'w') as configfile:
config.write(configfile)
可能大部分时候不一定需要写配置文件,那什么需要用到写的操作呢?有时候测试过程中可能出现了意外中断了,那么我们需要把测试做完,这个时候前面已经测了一部分怎么办?是重新测试还是接着之前的地方测试,那么这个时候如果我们脚本里有一些写的操作,那么重新测试的时候只要再读一下之前的写入的参数的状态,就可以调用之前的参数继续测试。
RVR的自动化主体部分基本就这样了,本身实现测试的自动化并不是很复杂,但是想把整个自动化测试做的比较智能的话就有太多的细节的地方需要去设计和优化了。
文字能力还是不太行,行文时感觉又回到了学生时代熬作文的时候了,半天憋不出一个字,还是要多看书啊!来一张百度的文心一言的AI画图,多看书!