TeserHome地址:https://testerhome.com/opensource_projects/60
前端:https://github.com/pencil1/ApiTestWeb  实现技术:js + vue + element-ui
后端:https://github.com/pencil1/ApiTestManage  实现技术:python + flask + httprunner

windows版

准备工作:
1、python3环境
2、把项目下载并解压到一个文件夹

后台配置
1、安装虚拟环境:pip install virtualenv

创建虚拟环境:virtualenv test(test为虚拟机名)

2、激活虚拟环境:到虚拟环境下执行activate.bat文件

3、项目根目录下pip install -r requirements.txt

4、第一次使用,首先要设置flask的app:
windows:set FLASK_APP=manage.py
linux:export FLASK_APP=manage.py

5、然后创建管理员账号(账号:admin,密码:123456):flask initdata

6、启动:python  manage.py

前端配置
1、安装 node 版本8以上即可,官网下载msi文件https://nodejs.org/en/download/,直接无脑下一步安装; 确保 node -V

检查npm是否默认带了的:npm -V

2、安装 yarn 工具包:python npm install -g yarn 不行就试试 npm install -g yarn

3、安装依赖:yarn install

4、启动(项目根目录下):yarn serve

登录(admin、123456):

linux版:

安装虚拟环境,参考我的另一篇:https://www.cnblogs.com/zhongyehai/p/11037363.html

后台:
上传解压,并进入ApiTestManage-master目录

安装依赖包(这台机器已升级pip3),在解压出来的ApiTestManage-master目录下:pip3 install -r requirements.txt

安装完成(安装需要一些时间)

第一次使用:
首先要设置flask的app:export FLASK_APP=manage.py

然后创建管理员账号(账号:admin,密码:123456):flask initdata

由于这里有报错的坑,而暂时没有解决,所以直接拿在windows上部署的数据过来替换

把启动的端口和ip改一下:host='0.0.0.0', port=8080

启动并访问

这样后端的环境问题就算解决了,先停掉,解决前端的环境

前端:

去node官网下载node(版本不要太低):https://nodejs.org/zh-cn/download/

解压

创建软连接

到前端的目录下安装yarn工具包:npm install -g yarn

为保险起见,给yarn创建一个软连接

安装依赖包: yarn install

配置文件:vue.config.js
devServer: {
  host: '127.0.0.1',
  port: 8023,  # 前端的端口
  proxy: {
    '/api/': {
      target: 'http://x.x.x.x:8024',  # 后端的ip和端口
      changeOrigin: true,
    }
  },

}
需要注意的有2个点:
host访问前端的地址
target地址,当跨域调用api时的地址,该地址需要与nginx里面的proxy_pass和后台启动地址一致

# 手动执行启动命令:yarn serve
执行打包命令:yarn build

生成dist文件,将该文件存放于服务器的某个路径,该路径需要和nginx.conf里面的root一致

后台服务启动:gunicorn -c gunicorn_config.py manage:app
gunicorn_config.py里面的关键参数说明:bind = 'x.x.x.x:8080'(启动服务的地址,注意:nginx里面的proxy_pass 需要与这个一致)

还是会报错,这里采用nohup的形式启动:nohup python3 manage.py

配置Nginx,安装好Nginx后。nginx.conf

#include /etc/nginx/conf.d/*.conf;
  server {
  listen 8023;  前端的端口
  server_name test-platform;
  charset utf-8;
  client_max_body_size 75M;
    location / {
      root /test/test-platform/ApiTestWeb-master/dist;
      index index.html;
      location /api{
      proxy_pass http://x.x.x.x:8024;  # 后端地址和端口
      }
      location /reports/{
      alias /home/reports/;
      }
    }
  }
}

启动Nginx

访问:

python接口自动化测试三十四:github上某接口测试平台及配置的更多相关文章

  1. python接口自动化测试二十四:上传多个附件,参数化

    # 添加多个附件参数化files = [("1.png", "1.png") ("2.png", "2.png") ]d ...

  2. python接口自动化测试三十五:用BeautifulReport生成报告

    GitHub传送门:https://github.com/TesterlifeRaymond/BeautifulReport 配置BeautifulReport 下载.解压并修改名字为Beautifu ...

  3. python接口自动化测试三十六:数据驱动参数化之paramunittest

    官方文档1.官方文档地址:https://pypi.python.org/pypi/ParamUnittest/2.github源码下载地址:https://github.com/rik0/Param ...

  4. Appium+python自动化(三十四)- 有图有真相,很美很精彩 - 屏幕截图和Android APP类型简介(超详解)

    简介 在实际自动化项目运行过程中,很多时候App可以会出现各种异常,为了更好的定位问题,除了捕捉日志我们还需要对运行时的设备状态来进行截屏.从而达到一种“有图有真相”的效果. 截图方法 方法1 sav ...

  5. Python学习(三十四)—— Django之ORM之单表、联表操作

    一.单表查询API汇总 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kw ...

  6. python接口自动化测试二十五:执行所有用例,并生成HTML测试报告

        import requestsimport unittest class TestQQ(unittest.TestCase):    '''测试QQ号接口'''      # 此注释将展示到测 ...

  7. python接口自动化测试二十三:文件上传

    # 以禅道为例: 一.创建一个类,类里面写一个登录方法: import requestsclass LoginZentao(): def __init__(self, s): # 初始化 self.s ...

  8. python接口自动化(十四)--session关联接口(详解)

    简介 上一篇cookie绕过验证码模拟登录博客园,但这只是第一步,一般登录后,还会有其它的操作,如发帖,评论等等,这时候如何保持会话呢?这里我以jenkins平台为例,给小伙伴们在沙场演练一下. se ...

  9. python接口自动化测试三十三:获取时间戳(10位和13位)

    很多时候,在调用接口时,需要对请求进行签名.需要用到unix时间戳. 在python里,在网上介绍的很多方法,得到的时间戳是10位.而java里默认是13位(milliseconds,毫秒级的). 下 ...

随机推荐

  1. mybatis注解开发实体类属性和数据库字段不对应问题

    /** * 查询所有用户 * @return */ @Select("select * from user") @Results(id="userMap",va ...

  2. XML学习——java解析xml文件

    递归获取每个标签 package test; import java.io.File; import java.util.List; import org.dom4j.Document; import ...

  3. spring-第十九篇AOP面向切面编程之增强处理的优先级

    1.从我们第十七篇举例了不同类型的增强处理. spring AOP采用和AspectJ一样的优先顺序来织入增强处理:在“进入”连接点时,具有最高优先级的增强处理将先被织入(在给定的两个Before增强 ...

  4. js 为false的几种情况

    1: false 2: null 3:undefined 4:"" 空字符串 5:0 6:NaN 如果你的if条件里面会出现 0 或者"",那么这种肯定是为假的 ...

  5. opencv2——图像上的算术运算4

    1.图像算术运算 参数含义: src1:第一张图像 src2:第二张图像 dst:destination,目标图像,需要提前分配空间,可省略 mask:掩膜 scale:缩放比,常量 dtype:数据 ...

  6. bzoj1897. tank 坦克游戏(决策单调性分治)

    题目描述 有这样一款新的坦克游戏.在游戏中,你将操纵一辆坦克,在一个N×M的区域中完成一项任务.在此的区域中,将会有许多可攻击的目标,而你每摧毁这样的一个目标,就将获得与目标价值相等的分数.只有获得了 ...

  7. rpmdeps - 生成 RPM 软件包依赖关系

    SYNOPSIS rpmdeps {-P|--provides} {-R|--requires} FILE ... DESCRIPTION rpmdeps 根据 FILE 参数集合,生成软件包依赖关系 ...

  8. React(5) --绑定函数事件

    绑定函数事件 在以类继承的方式定义的组件中,为了能方便地调用当前组件的其他成员方法或属性(如:this.state),通常需要将事件处理函数运行时的 this 指向当前组件实例. run(){     ...

  9. Web前端性能优化详解之CSS与JS加载

    浏览器加载页面和渲染过程 加载过程 浏览器根据DNS 服务器得到域名的IP地坛 向这个 IP 的机器发送 HTTP请求 服务器收到,处理并返回 HTTP请求 浏览器得到返回内容 渲染过程 根据 HTM ...

  10. 9.Markdown语法(自用)——2019年12月12日

    title: markdown语法说明 date: "2018-12-26 20:17:16" tags: 技术指令 categories: 技术驿站 markdown语法说明 2 ...