自动化测试工程

Zss 发表于:

由于产品迭代版本迭代越来越快,人员有点忙不过来,每次一个版本都需要验证重复的基本功能,确实花费时间,所以搭建个自动化工程来验证这些基本功能

由于ui的变化不大且样式比较简单,所以使用的selenium来操作ui的方式来实现产品的某个功能再以此验证功能,另外一款产品ui的变动可能比较大而且整个元素的定位不那么好定位,所以直接使用接口的方式添加规则来实现功能,我倒是觉得接口的方式真的好玩多了,(主要是抓包分析这个过程还是非常有意思的,模拟登录等等)这两种方式都尝试了后,对于那个越低层发现的问题越多深有体会

公司的产品是嵌入式产品,网络安全产品类,每次需要校验的是基本功能,验证这些功能需要使用到一些服务

譬如:nfs,smb,ftp,多种数据库,sftp,ftps等等服务

所以为了方便和移动,所以把工程建在虚拟机里面,这样子移动一个工程不需要去另外搭建这些服务了,只需要移动这个虚拟机就可以了,缺点嘛显而易见,虚拟机太大了

但是搭建过一次就好了,之后其实也只需要移动工程到复制的虚拟机就行

用例的管理我使用的是表格的方式,因为不多,感觉也挺方便的,也可以使用数据库的方式,至于使用什么其实都可以,只是方便与不方便的问题

配置相关的都是写在了一个配置文件中,这个配置文件没有使用标准的格式,自己随便定义的

后续添加了邮件发送,以及用例失败重试机制,用例成功自动关闭开关,等等功能,这些都是逐渐慢慢完善的

  1. 自动化测试工程结构说明

(1).整体结构

Case:存放测试用例脚本

Data:存放测试用例使用到的数据

Log:存放脚本运行的所有log输出日志

Module:存放配置文件及相关使用到的自定义模块

Report:存放自动化测试完成后生成的报告(HTML格式)

Run:存放网闸光闸自动化测试运行入口文件

 

(2).详细结构

 

Database_5:内置数据库同步测试用例

Dut_manage_1:设备管理相关测试用例

File_exchange_4:内置文件同步测试用例

Rule_3:模块测试用例

User_2:三员账号相关测试用例

Web_proxy_6:Web代理相关用例

Fgap_Case.xlsx:光闸测试用例表格,用例的开关处

Gap_Case.xlsx:网闸测试用例表格,用例的开关处

Autobak:自动备份测试用例文件存放处

Bakinit:rbk文件存放处,每次用例前导入一次配置

Certificate:三员账号证书存放处

Ftp:ftp测试用例相关文件存放处

Http:http测试用例相关文件存放处

Server:存放Http,Https,Ftp服务器外置数据库同步软件

Smb:smb文件交换文件存放处

环境配置安装

必须的第三方库
1.requests HTTP库
2.cx_Oracle oracle连接库
3.pymysql mysql连接库
4.pymssql sqlserver连接库
5.pyOpenssl ssl库
6.pysmb  smb库

2. 自动化测试工程环境配置

1.PyCharm_pro安装

2.Data/Server/Http 和 Https中的run.bat文件分别修改成能够启动ipv4_httpserver.py和ipv4_httpsserver.py和的命令

3.配置本机mysql服务端口3306,服务建议一直开启
(1).存在数据库autotest
(2).存在数据表autotest_mysql,autotest_mysql_src,autotest_mysql_dst
(3).账号密码:zss/zss  test/test
表结构:
CREATE TABLE `autotest_mysql` (
`id` bigint(20) NOT NULL,
`floatnumbers` float(10,5) NULL,
`names` varchar(100) NULL,
`namevchars` varchar(100) NULL,
`times` datetime NULL,
`payloads` longblob NULL,
PRIMARY KEY (`id`)
)

4.配置本机ip 192.168.3.222和192.168.4.222,或者修改config中的server_ip_src为192.168.3.x和server_ip_dst为192.168.4.x

5.Ftp服务器     端口21
账号密码    路径
src/src    C:\Auto-Test\Data\Ftp\ftp-src
dst/dst    C:\Auto-Test\Data\Ftp\ftp-dst

6.sqlserver  端口:1433
(1).存在数据库autotest
(2).存在数据表autotest_sqlserver,autotest_sqlserver_src,autotest_sqlserver_dst
(3).账号密码:zss/zss  test/test
表结构:
CREATE TABLE autotest_sqlserver (
id numeric(20) not NULL,
floatnumbers float(20) NULL,
names char(100) NULL,
namevchars varchar(100) NULL,
times datetime NULL,
payloads image NULL,
PRIMARY KEY (id)
)

7.oracle 端口 1521
账号密码  zss/zss  test/test zss1/zss1 test1/test1

字段名

CREATE TABLE oracletest (
id numeric(20) not NULL,
floatnumbers NUMBER NULL,
names char(100) NULL,
namevchars varchar2(100) NULL,
times date NULL,
payloads blob NULL,
PRIMARY KEY (id)
)

3. 配置文件说明

网闸配置文件config.ini    光闸配置文件config_fgap.ini

dut_ip–>https://10.6.5.240
网闸设备的管理IP:需要修改成10.6.5.x/24网段地址
dut_type–>am
设备的类型:安盟设备为am   深信服设备为sxf
retry–>0
失败重试次数:当用例失败后,重新运行次用例的次数,0为失败不重试1为失败重试一次,类推…
quick_check–>0
快速校验用例: 0关闭,1开启后则使用用例表格中的第二sheet中的用例,选择有代表性的用例运行
gap_header–>0
浏览器弹窗显示:0为关闭浏览器显示,1为开启,开启则全程运行看到浏览器的添加规则过程
ext_ip_gap–>10.6.4.1
外网接口IP:需要配置为10.6.4.x/24段地址,和实际设备配置的接口地址一致
int_ip_gap–>10.6.3.1
内网接口IP:需要配置为10.6.3.x/24段地址,和实际设备配置的接口地址一致
ext_ip_gap_ipv6–>4444::1:2345:6789:1111
外网接口ipv6_IP:需要配置为4444::1:2345:6789:x/64段地址,和实际设备配置的接口地址一致
int_ip_gap_ipv6–>3333::1:2345:6789:1111
内网接口ipv6_IP:需要配置为3333::1:2345:6789:x/64段地址,和实际设备配置的接口地址一致
dut_case_config_path–>C:\Auto-Test\Case\Gap_Case.xlsx
测试用例表格存放位置
dut_user–>superman
设备超级账户名:一定需要配置正确
dut_pwd–>
设备超级账户密码:一定需要配置正确
sysuser_user–>sysuser
sysuser账户名:配置错误则三员账号用例失败
sysuser_pwd–>
sysuser账户密码:配置错误则三员账号用例失败
secuser_user–>secuser
secuser账户名:配置错误则三员账号用例失败
secuser_pwd–>
secuser账户密码:配置错误则三员账号用例失败
loguser_user–>loguserloguser账户名:配置错误则三员账号用例失败
loguser_pwd–>
loguser账户密码:配置错误则三员账号用例失败
dut_new_pwd–>
三员账号修改后的密码:无需配置 以下为:虚拟机本机IP
server_ip_src–>10.6.3.222/255.255.255.0

server_ip_dst–>10.6.4.222/255.255.255.0

server_ip_src_ipv6–>3333::1:2345:6789:2222/64

server_ip_dst_ipv6–>4444::1:2345:6789:2222/64

server_ip_src_fgap–>10.6.6.222/255.255.255.0

server_ip_dst_fgap–>10.6.7.222/255.255.255.0

三元账号存在权限的页面总数
sysuser_permission–>21

secuser_permission–>5

loguser_permission–>25

 

运行完生产测试报告