接口自动化测试平台

Python
Linux
点点 · July 16, 2018 · 17961 次阅读 · 69 条评论

接口测试平台从开始到放弃

python3.6.3 Django 2.0.2框架

github地址:https://github.com/githublitao/api_automation_test

体验地址: http://120.79.232.23/ 请体验用户不要删除已有数据

账号:admin 密码:admin369874125

版本更新:

V2.1.2

1.增加导出测试用例功能

V2.1.1

1.新增swaggerUI界面,访问地址127.0.0.1:8000/docs/

V2.1

1.优化前端代码,适配屏幕分辨率,未做浏览器兼容性,目前只在chrome上浏览正常

2.新增mock功能,api管理模块可启动,关闭mock,启动后,通过访问http://127.0.0.1:8000/mock/+url,可返回mock信息真实

V2.0

重构接口代码,引入反序列化方式,修改接口为基于类的方式,因修改大量后台接口代码,前端未更新,所以目前前端调用接口会出现大量问题,目前平台暂不可用,后续更新

项目结构:

目录简介:

项目介绍:


1.项目分为一个前台系统,一个后台管理系统,后台管理一些测试数据和用户数据,前台不提供注册,全部由后台创建用户
2.系统首页可创建,删除,修改项目
3.点击项目后,分为项目首页,测试地址管理,接口管理,自动化管理,项目动态,项目成员
4.接口管理中,提供类似postman的快速测试方式,录入的接口可进行测试,修改,查看测试记录,修改记录及删除;还可直接导出接口文档,后续引入新功能导入swagger的接口信息
5.自动化测试管理可直接从接口管理中导入接口信息,也可新建接口;单条用例内,后面的接口可关联前面接口的返回结果,前置条件是前面的接口校验方式选择json校验,并填写正确的json格式的数据。目前接口返回结果校验只提供5种方式,分别是不校验,校验HTTP状态,校验JSON格式,完全校验与正则校验。可手动测试生成测试报告。自动化测试需要部署在Linux环境下,使用的是crontab作为定时任务与循环任务,目前自动化测试报告的模板还在开发中。。。。

系统声明:


1.本系统采用Django REST framework编写接口,前端页面采用比较容易上手的vue+elementUI

2.初步学习web开发,接口统一采用基于方法的方式编写,后续引入权限系统,并修改成基于类的方法

使用方法:


1.安装Python3环境(未在Python2上运行后,不知道有没有问题)

2.下载代码到本地并解压

3.cmd到根目录下安装相关依赖包

pip install -r requirements.txt
pip install https://github.com/darklow/django-suit/tarball/v2

4.安装mysql数据库,配置数据库连接,进入api_automation_test/settings.py

DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
       'ENGINE':'django.db.backends.mysql',     # 数据库类型,mysql
       'NAME':'api_test',            #  database
       'USER':'root',               # 登录用户
       'PASSWORD':'123456',        #  登录用户名
       'HOST':'127.0.0.1',        # 数据库地址
       'PORT':'3306'              # 数据库端口
   }
}

5.cmd到根目录下,让 Django 知道我们在我们的模型有一些变更

python manage.py makemigrations

6.创造或修改表结构

python manage.py migrate 

7.创建超级用户,用于登录后台管理

python manage.py createsuperuser

8.安装VUE环境,下载node.js并配置环境,下载npm包管理器,安装vue脚手架用于生成vue工程模板

npm install --global vue-cli

9.cmd进入frontend目录下,运行npm install安装相关依赖包

10.打包

npm run build

11.运行启动django服务

python manage.py runserver 0.0.0.0:8000 

12.现在就可以访问 http://127.0.0.1:8000 进行登录, http://127.0.0.1:8000/admin 为后台管理平台(注:如果登录不了的话,可能是接口请求地址错误,修改api_automation_test/frontend/src/api/api.js 注释其他IP,保留127.0.0.1

export const test = 'http://127.0.0.1:8000';

项目讲解:

1、登陆,用户只能由后台创建




2、目前只开放了接口测试,所有只有项目列表页面,可完成项目的新增,删除,查询,修改,批量删除




3、后台管理页面,主要用作数据管理,及项目人员添加删除




4、下载后的接口文档模板




5、自动化测试生成的报告,保留最近10次测试结果



评论列表
发表于 August 03, 2018

能加下好友嘛 项目中有些疑问需要了解下 q:515488179

testerhome 发表于 August 04, 2018

用pycharm跑起来报错,能帮忙看看吗?
/Users/aaa/Documents/api_automation_test/venv/bin/python /Users/aaa/Documents/api_automation_test/manage.py runserver 0.0.0.0:8000
Traceback (most recent call last):
File "/Users/aaa/Documents/api_automation_test/manage.py", line 8, in
from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/Users/aaa/Documents/api_automation_test/manage.py", line 14, in
) from exc
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

Process finished with exit code 1

扯蛋的青春丶 发表于 August 14, 2018

File "C:\Python36\lib\importlib_init_.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 994, in _gcd_import
File "", line 971, in _find_and_load
File "", line 955, in _find_and_load_unlocked
File "", line 665, in _load_unlocked
File "", line 678, in exec_module
File "", line 219, in _call_with_frames_removed
File "D:\api_automation_test\api_test\apps.py", line 2, in
from suit.apps import DjangoSuitConfig
ModuleNotFoundError: No module named 'suit.apps'

我执行报没有改模块,我实际导入,suit下确实没有apps,请问django-suit的版本号?

扯蛋的青春丶 发表于 August 15, 2018

已经OK了,看源代码咯

leeya 发表于 August 16, 2018

File "D:\Python\Python36\lib\importlib_init_.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 994, in _gcd_import
File "", line 971, in _find_and_load
File "", line 955, in _find_and_load_unlocked
File "", line 665, in _load_unlocked
File "", line 678, in exec_module
File "", line 219, in _call_with_frames_removed
File "E:\PycharmProjects\api_automation_test\api_test\apps.py", line 2, in
from suit.apps import DjangoSuitConfig
ModuleNotFoundError: No module named 'suit.apps'

请问这个问题怎么解决?

点点 发表于 August 16, 2018
咖喱饭 发表于 September 20, 2018

你好,我这边mock接口的时候,提示格式错误。请问格式怎么写啊

fengdeyingzi 发表于 October 16, 2018

体验地址无法打开是什么原因

点点 发表于 October 17, 2018

@fengdeyingzi 最近第三方的资源有问题,访问不太好

点点 发表于 October 17, 2018

@liulu
正在调通

点点 发表于 October 17, 2018

@strarboy 加环境变量

fengdeyingzi 发表于 October 17, 2018

@githublitao 我下载后按照你的步骤一步步操作后,admin能打开,但http://127.0.0.1:8000打不开,是不是也是三方资源有问题导致的??

大大国 发表于 October 25, 2018

啥时候完全公开?没看到mock部分呢

stonerczl 发表于 November 09, 2018

blocked by CORS policy: Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.
这个怎么解决?

测试小白 发表于 November 13, 2018

1.定时任务没有跑接口2.自动化测试中手动点测试,跑失败,但是在api接口中点测试 能跑通

jcgao 发表于 November 19, 2018

python manage.py createsuperuser 这个命令创建了用户后,登录后台,总提示用户名密码错误(密码肯定没有输错)

vivian_tester 发表于 December 03, 2018

请问能提供一下表结构么

vivian_tester 发表于 December 03, 2018

嗯嗯,已经看到了,只是在api.js里面没有更换到本地的地址,所以试了半天没有登陆成功

littlefive 发表于 December 24, 2018

作者辛苦,可有群号。。到时候直接群里沟通是不是方便快捷。。

点点 发表于 December 25, 2018

@littlefive 渣渣系统,么有群号

肖淑婷 发表于 January 01, 2019

我想问下和swagger打通什么时候可以做好

hfhhssyy123 发表于 January 03, 2019

可以帮看下 我在里面新增了hsy-test 项目 新建了一个接口 运行时 没有返回mock数据

点点 发表于 January 08, 2019

@xiaoshuting19951018 写的不是swagger地址,而是swagger里面包含接口数据的一个接口

点点 发表于 January 08, 2019

@hfhhssyy123 mock需要自己预配置好返回数据

一只咸鱼 发表于 January 16, 2019

辛苦看下为什么体验地址不能用了

点点 发表于 January 17, 2019

@yizhixianyu 好了,可能被玩崩了

jojotester 发表于 January 25, 2019

在管理后台新建了个用户,试了下登录不了

点点 发表于 January 25, 2019

@jojotester 改前端请求地址,打包重新发布

dclsky 发表于 January 25, 2019

请问我后台添加了用户,但是前台登录却提示用户名或密码错误,这个是什么情况呀

dclsky 发表于 January 25, 2019

@githublitao 请教一下,怎么改前端地址,打包发布呀

点点 发表于 January 25, 2019

@jojotester @dclsky
frontend/src/api/api.js 里面修改地址,然后执行npm run build打包

17629262213 发表于 January 28, 2019

前端的页面样式是乱的,怎么调整呢

435805824 发表于 January 29, 2019

@githublitao 请教一下,跨域的问题如何解决Failed to load resource: Origin http://127.0.0.1:8080 is not allowed by Access-Control-Allow-Origin.

435805824 发表于 January 29, 2019

@githublitao 是在fasttest里边请求的时候跨域了

杨叶璇 发表于 January 30, 2019

作者你好,为什么我在本地搭的服务,在同局域网下,别的电脑可以访问登录页面,但是登录却无响应呢

杨叶璇 发表于 January 30, 2019

上个问题知道原因了,感激作者

夏顺斌 发表于 February 11, 2019

请问创建好用户后,站点登录为什么一直提示账号或密码错误?

肖淑婷 发表于 February 21, 2019

可以加下微信?我的微信号:x516727324

肖淑婷 发表于 February 21, 2019

@fengdeyingzi 你现在可以用127.0.0.1:8000访问了吧

18310120994 发表于 March 06, 2019

后台管理页面显示有问题怎么调整

18310120994 发表于 March 06, 2019

pycharm 打开这个工程有点问题 有没有群啊

mitu3 发表于 April 18, 2019

什么时候 开放所以功能 @githublitao 😶

帅洺洺 发表于 April 19, 2019

借用玩下

stronger 发表于 April 23, 2019

mark

wenzhaoxian 发表于 April 24, 2019

我的环境是python3.6.7 ,MySQL是8.X 的为什么后台能登录进去,增加用户并授予权限,为什么还登录不是呢,提示账号密码错误?

点点 发表于 April 24, 2019

@wenzhaoxian 我觉得你需要坚持一下前端的路由,可能是访问我服务器的端口,api.js文件里面,修改成自己服务器地址

点点 发表于 April 24, 2019

@mitu3 停更了,没时间

weijie 发表于 April 24, 2019

借用下多谢大神提供

baynkbtg 发表于 April 25, 2019

Traceback (most recent call last):
File "manage.py", line 15, in
execute_from_command_line(sys.argv)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/core/management/init.py", line 381, in execute_from_command_line
utility.execute()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/core/management/init.py", line 357, in execute
django.setup()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/init.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/apps/registry.py", line 89, in populate
app_config = AppConfig.create(entry)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/apps/config.py", line 90, in create
module = import_module(entry)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1006, in _gcd_import
File "", line 983, in _find_and_load
File "", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'suit'

执行python3 manage.py makemigrations时报上面的错,请问应该怎么解决呀?纠结两天了,多谢大神

baynkbtg 发表于 April 25, 2019

@点点 你发的这行命令已经执行了,还是会报那个错。

点点 发表于 April 25, 2019

@baynkbtg 这个是环境问题,检查一下你是否装了两个python,或者重新按步骤来一遍

baynkbtg 发表于 May 05, 2019

Module build failed: ValidationError: CSS Loader Invalid Options
options should NOT have additional properties
@点点 npm run build的时候报这个错,请问应该怎么解决呀?网上找的方法试过了,都不好使,多谢大神

baynkbtg 发表于 May 05, 2019

接楼上,解决啦,是版本的问题

caohua123 发表于 May 09, 2019

请问有谁知道这个是怎么做关联的么?

thy 发表于 May 14, 2019

npm run build时候报错,哪个哥哥知道怎么解决吗?
ERROR in static/js/3.2f5ff45ad5d650bc3d35.js from UglifyJs
Unexpected token name «i», expected punc «;» [./../node_modules/element-ui/src/utils/merge.js:2,11][static/js/3.2f5ff45ad5d650bc3d35.js:27,11]

Build failed with errors.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! frontende@1.0.0 build: node build/build.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the frontende@1.0.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\thy\AppData\Roaming\npm-cache_logs\2019-05-13T14_54_01_612Z-debug.log

白发苍苍的老大爷 发表于 May 14, 2019

9.cmd进入frontend目录下,运行npm install安装相关依赖包

白发苍苍的老大爷 发表于 May 14, 2019

9.cmd进入frontend目录下,运行npm install安装相关依赖包
我看了项目是linux环境,然后在Centos7上搭建的,到上面这第9步安装依赖包时报错了,有个F啥的组建不支持当前系统,貌似是Win环境的。。求助。 是操作系统写错了,还是咋了,我看评论貌似都是在win下部署的

点点 发表于 May 15, 2019

@admin12306 这一步只是部署开发环境而已,最后前端打包后只有dist那个文件有用,你可以在Windows下开发调试完毕之后,直接放在centos上运行

点点 发表于 May 15, 2019

@thy33221 重新来一遍

vvccool 发表于 May 22, 2019

怎么批量导入接口

zhongwenxu 发表于 May 23, 2019

编译失败,打包失败的,执行下下面这个命令:
npm rebuild node-sass

Soberlin 发表于 May 30, 2019

可以加微信吗 15224035696

残风 发表于 June 10, 2019

此项目很不错,去年在git上看到,就拿来自己改造用了起来了,多谢作者!!

wyLuffy 发表于 June 11, 2019

请问大佬怎么批量导入eolinker接口文档?

menglei123 发表于 June 25, 2019

6.创造或修改表结构
python manage.py migrate 麻烦问下,执行过这一步后,是不是对应的数据库中会生成表结构

menglei123 发表于 June 25, 2019

8.安装VUE环境,下载node.js并配置环境,下载npm包管理器,安装vue脚手架用于生成vue工程模板
npm WARN engine ansi-regex@4.1.0: wanted: {"node":">=6"} (current: {"node":"4.4.
4","npm":"2.15.1"}) 卡在这一步半小时了,哪位大神帮忙看下

menglei123 发表于 June 25, 2019

npm install的时候提示 ajv-keywords@2.1.1 requires a peer of ajv@^5.0.0,安装了 ajv@^5.0.0后又提示ajv-keywords@3.4.0 requires a peer of ajv@^6.9.1,到底要安装哪个版本啊

uida3647 发表于 July 01, 2019

不知道目前这个平台是否可以支持MOCKserver的功能,比如我自己的平台调用这个API测试平台的接口,接口返回MOCK的数据给到我自己的平台。