• 自动化测试平台环境docker部署


    参考资料:
    testin云测 https://www.testin.cn
    接口自动化测试平台:http://120.79.232.23
    星云测试 http://www.threadingtest.com
    腾讯云测 http://wetest.qq.com
    阿里云测 http://mqc.aliyun.com
    51testing社区: http://www.51testing.com/html/
    testhome社区: https://testerhome.com/topics/
    霍格沃兹测试学院
    http://www.dragontesting.cn
    https://viptest.net
    http://www.primeton.com/products/uc/overview.php
    https://www.cnblogs.com/40406-jun/p/6642112.html

    Appium+Python3+iOS真机环境搭建
    Appium+IOS+Java真机自动化环境搭建配置
    Selenium Grid/zalenium+robotium
    selenium+testng/unitest/pytest

    ##可视化测试系统
    demo: http://47.100.231.216:8083/atnest/
    用户名:user
    密码: user

    Allure--自动化测试报告生成
    https://github.com/allure-framework/allure2/releases
    自动化测试--实现一套完全解耦的测试框架(三)
    https://www.cnblogs.com/clairejing/p/9756385.html

    https://opensource.zalando.com/zalenium/#usage
    sonarqube+jenkins实现持续CodeReview

    itest--https://www.cnblogs.com/mypm/p/10823752.html
    Java+Testng+Maven+Jenkins+ExtentReports+Retrofit2+Git
    自动化、极速、稳定
    www.importnew.com/14508.html
    http://www.dragontesting.cn/index.html

    项目管理、接口管理、用例管理、测试报告、任务设置
    https://www.xuebuyuan.com/763996.html
    https://testerhome.com/opensource_projects/37


    ###git项目
    https://github.com/liuweijw/fw-cloud-framework
    https://github.com/ZhuBaker/Tracing
    https://www.infoq.cn/article/kFSZ-ZBBp566XD8hTiwt 蚂蚁金服自动化测试框架 SOFAActs 原理和使用
    https://github.com/sofastack/sofa-acts

    ##自动化测试
    https://git.bxd365.com/laoliang/autotestclient.git
    ##
    http://itindex.net/detail/58083-%E6%80%A7%E8%83%BD-%E6%B5%8B%E8%AF%95

    ############自动化测试开发服务器地址:
    192.168.1.81
    root
    xiangju123456

    ##jenkins发布机##
    http://192.168.1.81:9090
    jenkins_admin


    ###luckyframe测试环境地址:192.168.1.117
    root
    abcd.1234A117
    Maven 3.5.4+idea


    ###MAT云真机地址
    http://192.168.1.81:8080/

    ##stf原生群控地址:
    http://192.168.1.81:7100/

    ##HttprunnerManager系统地址:
    http://192.168.1.81/api/register/
    用户名:maxtian
    密码: tianyi

    https://github.com/HttpRunner/HttpRunnerManager


    接口测试jmeterweb化地址:
    http://ownerworld.tpddns.cn:8089/#/home
    账号:zgq346712481

    ###testin云测平台
    https://www.testin.cn/realmachine/index.htm
    calfonlyone@foxmail.com


    ##docker官方账号
    zgqdocker123456
    12列shfit12列

    docker镜像迁移
    nohup docker save test_init_img | gzip > /home/xiangju/soft_three/open-MAT-test_img201904.tar.gz 2>&1 &
    https://www.jianshu.com/p/64becdd8927c
    ###############################
    Hadoop(hdfs+hbase+MapReduce+hive)

    兼容测试的原理,遍历跑业务脚本到批量真机驱动APP进行业务操作,然后收集监控日志分析,输出测试报告
    #############如何通过 Docker 快速构建 Appium 开发环境
    ###
    1 添加用户

    adduser xiangju
    passwd xiangju

    **cabuxj123

    whereis sudoers
    ls -l /etc/sudoers

    chmod -v u+wrx /etc/sudoers


    vi /etc/sudoers
    ## Allow root to run any commands anywhere
    root ALL=(ALL) ALL
    xiangju ALL=(ALL) ALL


    centos7中没有安装ifconfig命令的解决方法
    yum install net-tools.x86_64

    二 部署docker
    https://www.runoob.com/docker/centos-docker-install.html

    sudo usermod -aG docker your-user

    $ sudo docker run hello-world
    docker ps
    https://www.runoob.com/docker/docker-hello-world.html
    ###使用docker部署STF服务(CentOS环境)
    一、安装docker环境
    https://hub.docker.com/r/appium/appium
    sudo service docker restart
    1 docker中启动所有的容器命令
    docker start $(docker ps -a | awk '{ print $1}' | tail -n +2);

    docker restart nginx

    2 docker中关闭所有的容器命令
    docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2);

    3 docker中删除所有的容器命令
    docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2);

    docker rm fb087642b497(镜像ID)


    4 docker中删除所有的镜像
    docker rmi $(docker images | awk '{print $3}' |tail -n +2);
    su root # 先切换到root用户, 再执行以下命令
    systemctl enable docker # 开机自动启动docker

    systemctl start docker # 启动docker
    systemctl restart docker # 重启dokcer

    查看日志
    docker logs -f 容器名

    Docker 容器镜像删除
    1.停止所有的container,这样才能够删除其中的images:
    docker stop $(docker ps -a -q)

    如果想要删除所有container的话再加一个指令:
    docker rm $(docker ps -a -q)

    2.查看当前有些什么images
    docker images

    3.删除images,通过image的id来指定删除谁
    docker rmi <image id>

    想要删除untagged images,也就是那些id为<None>的image的话可以用
    docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

    要删除全部image的话
    docker rmi $(docker images -q)

    更新软件
    sudo yum update

    执行安装
    sudo yum install docker

    查看docker镜像
    sudo docker images
    docker pull muicoder/appium


    //(1)启动镜像并运行命令
    sudo docker run centos echo 'hello word'
    //(2)启动交互式终端
    docker run --name=bxp02 -i -t centos /bin/bash

    ##进入指定的容器--根据服务关键字过滤
    sudo docker exec -it `(docker ps -a|grep help|sed -n "1, 1p"| awk '{print $1}')` /bin/bash

    1 docker start 容器名 启动某个容器
    2 docker stop 容器名 停止某个容器
    3 docker rm 容器名 删除某个容器

    二、拉取相关镜像

    STF镜像
    sudo docker pull openstf/stf:latest

    Android adb镜像
    sudo docker pull sorccu/adb:latest

    rethinkdb镜像
    sudo docker pull rethinkdb:latest

    ambassador镜像
    sudo docker pull openstf/ambassador:latest

    nginx代理镜像
    sudo docker pull nginx:latest


    三、创建容器实例
    在CentOS7中运行docker容器,挂载的本地目录在容器中没有执行权限,原因是CentOS7中的安全模块selinux禁用了相关权限。
    关闭selinux
    su -c "setenforce 0"
    启动容器

    启动rethinkdb数据库
    sudo docker run -d --name rethinkdb -v /srv/rethinkdb:/data --net host rethinkdb rethinkdb --bind all --cache-size 8192 --http-port 8090

    启动adb service ##把docker adb服务设备挂载目录--映射到宿主机的挂载设备目录--插上USB设备(手机)
    sudo docker run -d --name adbd --privileged -v /dev/bus/usb:/dev/bus/usb --net host sorccu/adb:latest

    启动stf(最后的ip地址参数为本机的局域网ip地址)
    sudo docker run -d --name stf --net host openstf/stf stf local --public-ip 192.168.1.81

    ##abd远程连接无线设备
    sudo docker run -d --name stf --net host openstf/stf stf local --public-ip 192.168.1.81 --adb-host 192.168.10.135 --adb-port 5037 --allow-remote


    查看启动的docker容器
    sudo docker ps -a
    四、关闭防火墙 查看stf服务

    关闭系统防火墙
    systemctl stop firewalld.service

    打开浏览器输入:http://192.168.1.81:8090/ 访问rethinkdb数据库
    对象数据库查询
    使用示例: Data Explorer 在线查询工具

    0.列出所有的数据库
    r.dbList()

    1.列出数据库rethinkdb下所有表
    r.db('rethinkdb').tableList()

    2.列出jobs表下面的内容
    r.db('rethinkdb').table('jobs')


    打开浏览器输入:http://192.168.1.81:7100 访问stf服务

    ####http://192.168.1.81:7100/auth/mock/
    stftest
    346712481@qq.com

    作者:与你若只如初见v
    链接:https://www.jianshu.com/p/10bdf33d2c64
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
    ###########################

    ###docker appium环境搭建


    Docker Appium 配置

    docker pull appium/appium:1.9.1-p0
    docker pull appium/appium-emulator:1.1-arsenal
    docker run --privileged -d -p 4723:4723 -v /dev/bus/usb:/dev/bus/usb --name appium-1.9.1-p0 appium/appium:1.9.1-p0

    #####基于docker实现APP和WEB自动化测试分布式并发执行脚本
    ####docker+selenium grid+python实现分布式自动化测试
    https://blog.csdn.net/songer_xing/article/details/78626592

    docker run -p 5556:4446 -d --name hub selenium/hub

    docker run -d -p 5901:5901 --link hub:hub selenium/node-chrome-debug


    使用APPium+Robotframework框架实现一台电脑连接多台安卓设备自动化测试


    ###stf二次开发
    1 修改登录页logo
    /usr/local/node/node-v8.11.2-linux-x64/lib/node_modules/stf/res/common/logo
    2 修改设备页logo
    http://192.168.10.135:7100/static/app/build/e831b7164c8a65b849691bff62cdb160.png
    /usr/local/node/node-v8.11.2-linux-x64/lib/node_modules/stf/res/build

    3 OPENSTF平台网络流量优化方案详解--https://blog.csdn.net/zhonglunshun/article/details/80831537
    /usr/local/lib/node_modules/stf/lib/units/device/plugins/screen/stream.js

    docker下修改
    /app/lib/units/device/plugins/screen
    80--50
    /app/lib/cli/device/index.js
    /app/lib/cli/provider/index.js
    cat /app/lib/cli/provider/index.js|grep 50

    /app/node_modules/eventemitter3/index.js

    ####项目介绍
    功能
    系统支持
    支持Android版本2.3.3 (SDK10) 到7.1 (SDK25))
    支持Wear 5.1
    无需root


    Web浏览器管理设备
    屏幕操作和显示(30-40fps)
    支持PC机键盘输入到远程的设备(复制粘贴)
    支持多点触控操作远程设备
    支持adb connnect远程连接调试
    拖拽安装APK
    远程设备提供
    设备信息的展示(如:网络状态,MIME,android版本,手机型号等等)
    远程开关机,远程开关WIFI,截屏,LogCat等等
    执行Shell命令
    设备文件管理

    主要依赖
    Node.js >= 4.2 (latest stable version preferred)
    ADB properly set up
    RethinkDB >= 2.2
    GraphicsMagick (for resizing screenshots)
    ZeroMQ libraries installed
    Protocol Buffers libraries installed
    yasm installed (for compiling embedded libjpeg-turbo)
    pkg-config so that Node.js can find the libraries
    平台语言

    页面html使用Pug模版引擎
    前端使用的是Angularjs
    后端使用的是Nodejs
    数据库使用的是对象型数据库Rethinkdb

    Rethinkdb
    Rethinkdb 属于对象型数据库,使用的是json字符串格式保存数据。
    目录详解
    /.tx #集成翻译平台Transifex的相关配置,用于语言翻译
    /bin #启动文件,调用的是lib/cli.js
    /docker #Docker的相关配置
    /lib #后端
    /res #前端
    /doc #文档说明,包含VNC,部署,API
    /test #状态检测
    /vendor #安装到手机上的应用和服务,包括minirev,minitouch,STFService


    前端res

    主要为Service服务和View页面两大部分

    /app #前端web
    - /components/stf #服务组件,用于与后端通讯
    - /control-panes #页面,设备控制
    - /device-list #页面,设备列表
    - /docs #页面,帮助
    - /layout #页面,布局
    - /menu #页面,菜单
    - /setting #页面,设置
    - /terminal #页面,终端样式
    - /user #页面,用户,暂未完成
    - /views #页面,主视图
    /auth #登录认证
    - /ladp #页面,LADP认证
    - /mock #页面,默认验证
    /common #其他
    - /lang #语言包
    - /logo #页面,图标
    - /status #页面,脚本
    /test #登录,跳转
    /web_modules #样式

    后端lib
    /db #数据操作相关文件
    /units #核心代码,用于功能实现
    - /api #主要的RESTful APIs
    - /app #提供主要HTTP服务,处理所有静态资源,包括图片,脚本和样式表
    - /auth #授权验证,Mock auth,OAuth 2.0,LDAP,SAML 2.0
    - /device #设备功能的具体实现.设备端底包,服务和STFservice.apk的安装
    - /log #将设备事件log存储至数据库
    - /notify #用于推送通知或到你的环境
    - /pooxy #数据库代理相关
    - /processer #设备和app之间的桥,几乎所有通讯都经过它
    - /provider #设备提供和发收命令
    - /reaper #接收心跳,处理设备异常断连
    - /storage #截图,图像存储和调整,操作apk
    - /triproxy #用于接受和处理来自app和设备端的请求
    - /websocket #用于客户端js和服务端(ZeroMQ,Protobuf )的通讯,所有action均由此发送
    /util #内部方法
    /wire #队列,路由,流相关方法
    ##########################################################

    docker restart adbd #开启容器内的adb
    docker rm CONTAINER ID
    sudo docker run -d --name adbd --privileged -v /dev/bus/usb:/dev/bus/usb --net host sorccu/adb:latest
    docker exec -it CONTAINER ID /bin/sh


    docker restart hub
    docker restart stf
    docker restart rethinkdb
    docker restart new_appium1

    docker logs -f 容器名 #查看日志
    docker exec -it `(docker ps -a|grep help|sed -n "1, 1p"| awk '{print $1}')` /bin/bash
    docker exec -it CONTAINER ID /bin/bash
    docker exec -it CONTAINER ID /bin/sh
    docker ps -a #查看当前运行的容器

    ########stf--adb远程无线连接设备
    http://192.168.10.135:7100/#!/control/192.168.10.236:5554
    ##error: could not install *smartsocket* listener: Address already in use
    adb kill-server 杀掉宿主机的adb服务端口 (docker sorccu/adb与宿主机只能运行其中一个)
    lsof -i tcp:5037

    docker exec -it 42624571f8e6 /bin/sh 进入容器
    adb tcpip 5555 开启无线端口
    adb connect 192.168.10.115:5555 ## 服务器adb 连接无线设备IP+端口
    adb connect命令连接多个Android设备

    adb shell 进入手机的控制终端,相当于原生的Linux系统的各种操作。
      当提示符为$符号,说明未获得超级管理员权限,输入su,可编程#
      adb kill-server
      adb start-server
      adb push /data/data/123.txt D: 复制文件到d盘目录adb
    lsof -n -i4TCP:5037 | grep LISTEN
    kill -9 <PID>

    adbkit abd无线连接
    STF中ADB connect的使用
    安装nodejs
    推荐使用nvm安装
    安装adbkit
    $ npm i -g adbkit
    启动usb转tcp服务
    $ adbkit usb-device-to-tcp -p $port $serial
    再另一台装有adb的机器上进行设备的连接
    假设启动adbkit服务的机器ip是10.0.0.1 端口是15555
    $ adb connect 10.0.0.1:15555

    STF 远程控制大量 Android 设备
    ADB连接手机的两种方式(usb数据线连接和wifi连接)
    通过adb连接到Docker容器中的USB Android设备

    如何通过 Docker 快速构建 Appium 开发环境?

    https://jingyan.baidu.com/article/ce436649379e0a3772afd354.html
    ###docker制作镜像,然后导出,上传远程服务器,然后再导入运行
    docker save eb40dcf64078> /root/mydjango-save-1016.tar 将镜像保存为本地文件,其中eb40dcf64078为image id

    使用load方法加载刚才上传的tar文件
    docker load < /root/mydjango-save-1016.tar

    #查看容器
    docker ps -a|grep help
    #进入容器
    docker exec -it 1113a9057304 /bin/bash

    ##进入指定的容器--根据服务关键字过滤
    docker exec -it `(docker ps -a|grep help|sed -n "1, 1p"| awk '{print $1}')` /bin/bash
    docker exec -it `docker ps -a|grep help|sed -n "1, 1p"| awk '{print $1}'` /bin/bash
    ##查看php服务
    ps -ef|grep php

    docker ps -a|grep help|awk -f {}

    docker ps -a|grep help|sed -n "1, 1p"| awk '{print $1}'

    docker exec -it |docker ps -a|grep help|sed -n "1, 1p"| awk '{print $1}'|/bin/bash

    docker exec -it < `docker ps -a|grep help|sed -n "1, 1p"| awk '{print $1}'` /bin/bash

    docker exec -it | (docker ps -a|grep help|sed -n "1, 1p"| awk '{print $1}') /bin/bash

    docker rm `docker ps -a | grep Exited | awk'{print $1}'` 删除异常退出的容器

    docker exec -it `(docker ps -a|grep help|sed -n "1, 1p"| awk '{print $1}')` /bin/bash

    docker ps -q --no-trunc --filter name=^/foo$

    docker ps -q --no-trunc --filter name=^rest-helper.beta$

  • 相关阅读:
    media Queries实现一个响应式的菜单
    跨域资源共享(CORS)在ASP.NET Web API中是如何实现的?
    Media Formatters媒体格式化器
    Winform系列
    node-webkit入门
    WCF 自承载
    HttpClient的使用-爬虫学习1
    为什么程序员的工作效率跟他们的工资不成比例(转)
    大师们都是怎么撑场面的(转)
    马云关于企业发展的一些看法
  • 原文地址:https://www.cnblogs.com/zgq123456/p/11229481.html
Copyright © 2020-2023  润新知