自动化测试入门,第一次做自动化测试总结

20220901 自动化测试python接口总结

一、自动化测试分为 1、测试接口 2、测试用例 3 、测试模块

1、测试接口:

自动化测试的python接口为本次工作的重点,首先是测试接口的主程序(main),main中包含了自动化测试的所有命令头(cmd_head),包括SetPayload等,原理为,所有的命令行程序都是通过argparse来实现的,在main中有parser命令解释器,将所有argparse设置的选项作为parser的属性,所以在输入这些属性中的命令头时,就会执行相应的功能。如果不是设置的选项则会提示错误。然后在main中,还有建立连接并打开模块,断开连接等不需要opwill_cmd 的功能。

运行整个测试命令的流程为:输入命令(case:opwill_cmd)- >与server端建立socket连接 - >解析(main:opwill_cmd()) - > 执行命令相关的功能arg.func() -> 解析参数(从argument列表中匹配)执行相应函数 -> 函数改变配置的数据,相应的改变了数据结构的数据,使得配置文件改变,把新的配置文件通过send_commend函数发送消息到server端 -> server端的main.lua程序会接受消息,并且判断收到的消息类型,执行功能,如果收到的时send_cdnfigfile类似的发送文件的命令,则会对接受的数据进行重新编码,并读取配置文件,以在仪表界面上进行相应的改动 -> 如果server端有回应的消息,则由client端进行get命令,并且处理格式。然后返回值。-> 测试流程结束

测试接口还有一个比较核心的点在于配置文件,python本身没有结构体,想要按照c++的数据结构进行数据的改变需要用到ctype库。一个经典的ctype型的结构体为:


class structname(ApiStructure):
    _fields_ = [('a', c_char*4),
                ('b', c_char*4),
                ('c', c_char*4),
                ('d', c_char*4),
                ('e', c_char*4)]

ApiStructure为Structure的重写,正常使用Structure即可。但是想要访问其中的变量还需要:

data = string_at(addressof("structname()"), sizeof(structname))
buff = create_string_buffer(data, sizeof(structname))
memmove(byref(structname()), cast(buff, POINTER(structname)), sizeof(structname()))

原理为,将这些变量名与ctype的数据类型建立映射关系,然后通过class来对该变量名进行访问

structname.a = 0

需要注意,python的ctype类型的’结构体‘默认是4字节对齐,所以有时会因为对齐而填充了一些空字符。比如:

class structname(ApiStructure):
    _fields_ = [('a', c_ubyte),
                ('b', c_ubyte),
                ('c', c_ubyte),
                ('d', c_ubyte),
                ('e', c_ubyte),
                ('f', c_uint)]

一个c_ubyte是一个字节,一个c_uint是4个字节,总共应该是9个字节,但是sizeof之后得到的是12字节

如果需要修改字节对齐规则,只需要在_fields_上面加上_pack_ = 字节对齐

如:

class structname(ApiStructure):
    _pack_ = 1
    _fields_ = [('a', c_ubyte),
                ('b', c_ubyte),
                ('c', c_ubyte),
                ('d', c_ubyte),
                ('e', c_ubyte),
                ('f', c_uint)]

此时为1字节对齐,sizeof之后就是9字节

本文只为经验分享,如有不足请各位指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值