UAG自动化总结

一:网络结构


UAG自动化总结 - 图1

俩台UAG环境:

分别是120.6 120.7

一台开发机:

console_120_216_env1,也就是用来开发脚本,和执行脚本的机器。同时也可以作为web自动化的执行机

Client01_120_217:

作为一台web自动化执行机

Server01:

作为http认证的server

Server02:

在server01不能满足当前的情况下,使用server02

如果以后加入到自动化组,优先把网络结构和网络配置好,有问题(高建帅,李宁宁,孙彦斌)

二:编辑器配置

https://developer.aliyun.com/article/875037

1.配置deployment

Tools—->Deployment—->Configuration

UAG自动化总结 - 图2

选择FTP配置对应的host user name password ,然后test Connection,输入root path,也就是工程路径


UAG自动化总结 - 图3


UAG自动化总结 - 图4

2.配置好入下图:

代表连接成功,可编辑,编辑完之后,记得同步,点击右上角的upload按钮
UAG自动化总结 - 图5


UAG自动化总结 - 图6

3.执行脚本也不用直接去linux端去执行了,直接在Tools—->Start SSH Session

UAG自动化总结 - 图7
入下图:
UAG自动化总结 - 图8

4.直接就在这里去执行我们的脚本即可

UAG自动化总结 - 图9


UAG自动化总结 - 图10

三:框架代码介绍

UAG自动化总结 - 图11

bin目录:是火狐浏览器驱动

conf目录:使我们所有服务器以及UAG、虚拟站点、数据库等配置


UAG自动化总结 - 图12

lib目录:一些底层的框架方法

ag.py: uag的连接、cli控制台下发命令、业务方法等封装

Webelement.py:webui操作等封装

config.py:初始化配置的方法

log.py:断言方法

mysqldb.py:生成报告保存在数据库中

Err_list.py:失败用例保存方法

Lists目录:存放失败用例

Report:存放最近一次执行结果

Smoke_test目录:就是自动化脚本存放地址

四:编写脚本


1.缩进只能用空格缩进,要不执行脚本会报错
2.使用到那个方法就加载那个方法,用不到的就不需要加载,提高脚本执行时间
Web,c1_web,c1_cli,AG0,AG1
比如:
def test_5201030201(AG0, configer, logger, c1_web):

模板如下:


#-- encoding: utf-8 --
#########################################################
#Filename : 5201010101.py
#Author : gaojs
##########################################################
import pytest
from time import sleep

#####################################################################################
“””
case:5201010101
action:
aaa server name ?
expect result:
显示:
Server type, can only be samlsp/radius/ldap/http/localdb/certificate/sms
“””
#######################################################################################


def test_5201010101(AG0, configer, logger):

AG0.config_cmd(‘virtual site name automation_test’)
AG0.config_cmd(‘virtual site ip automation_test %s’ % (configer.sites[0]))
AG0.config_cmd(‘sw automation_test’)

result=AG0.config_cmd(‘aaa server name ?’)
print(result)
logger.found(r’Server type, can only be samlsp/radius/ldap/http/localdb/certificate/sms’, result)
####



UAG自动化总结 - 图13

五:执行脚本

1.执行脚本前,要去client01中,启动selenium,java -jar selenium-server-standalon*


UAG自动化总结 - 图14

2. 执行脚本命令

1.执行所有http目录下的用例:

sh run.sh
UAG自动化总结 - 图15

2.执行单个用例:(复制一个run.py文件,然后编辑一下要跑的用来)

python3 jianshuai.py
UAG自动化总结 - 图16

六:测试报告和测试记录

测试记录:


UAG自动化总结 - 图17


UAG自动化总结 - 图18
UAG自动化总结 - 图19

查看地址:

[192::1:192]/cgi-bin/test_report.pl?build=AG_10_0_4_10_gaojs

UAG自动化总结 - 图20
UAG自动化总结 - 图21

七:git操作

https://www.runoob.com/git/git-basic-operations.html

UAG自动化总结 - 图22

配置用户名和密码:
git config —global user.email zhen24
git config —global user.name zhen24

查看用户名:
git config —get user.name

查看列表(使用最后一个):
列表:git config —list —global
单个:git config —get user.name

删除一个用户名:
多个需要指定:git config —global —unset user.name zhen24
一个不需要指定:git config —global —unset user.name

修改用户名:
git config —global user.name zhen

git 使用hash来唯一标识对象

获取仓库:
1、git init
eg:git init first_init
2、git clone http://xxxxx

三个区:工作区(working)、暂存区(staging)、历史仓库(history)
git add 文件名 :添加文件到暂存区 eg:添加整个文件:git add -A
git commit -m ‘添加的说明’:提交到暂存区
注:修改commit的提交说明,git commit —amend
git push -u origin master :将代码推送到远端,强制覆盖远端使用这:git push -u origin master -f

git status :查看工作区和暂存区的区别
git mv 命名a 命名b :重命名或移动
git rm 文件名:删除文件
git rm —cached 文件名:删除暂存区的文件
git branch 分支名:创建分支
git checkout 分支名:切换分支

创建tag:
git tag tag名 hash(默认当前的分支的hash)
git tag -a ‘tag名称’ hash(默认当前的分支的hash)
查看tag:
git tag
查看历史示意图:
git log —oneline —decorate —graph —all
起别名:git config —global alias.lol ‘log —online —decorate —graph —all’ 其中lol为别名
之后使用:git lol

切换分支前保存当前分支的工作:
git stash save -a ‘stash1’
查看保存的分支列表:
git stash list
还原之前保存的内容:
git stash pop —index stash@{0}

合并分支:
git merge 分支名
放弃合并:
git merge —abort

git show hash/head:显示最新的提交信息
git show master 第一个父提交
git show master^2 第二个父提交

显示简短的提交:
git show —format=%T master^2

显示完整的信息:git log
git log -p :输出每一个commit之类的差异信息
git log —stat :输出每一个commit之类的差异的统计信息
git log —oneline :输出单行信息

查看历史示意图:
commit引用的信息 显示所有信息
git log —oneline —decorate —graph —all
图形化的信息

显示工作区与暂存区的区别:git diff
查看暂存区和历史提交的差异:git diff —cached [可加hash]
比较不同提交版本的差异:git diff HEAD HEAD^2 —master.txt
显示单词的差异:
git diff —color-words
git diff —word-diff

git checkout — master.txt:用暂存区的内容覆盖工作区的内容
git reset 文件名(master.txt):忽略差异
使用历史的文件覆盖工作区的内容:git checkout HEAD — master.txt
git clean