接口自动化测试平台

Python
Linux
点点 · July 16, 2018 · 14449 次阅读 · 62 条评论

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

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