python-----编写接口,使用postman与soapiu与jemeter访问调用
实例:自己写一个注册接口 输入用户名、密码、验证码,当满足注册将密码进行md5加密。
场景 |
接口返回参数 |
提示 |
用户名存在 |
2000 |
exit 用户已存在 |
密码与验证码不相等 |
3000 |
wrong 密码不一致 |
注册成功 |
1000 |
insert 插入成功 |
URL与传入参数 |
||
接口访问地址 |
http://127.0.0.1:9009/regist |
|
请求方式 |
Post |
|
传入参数 |
username 用户名 password 密码 cpassword 确认密码 |
|
Mysql数据库 |
信息 |
Ip |
192.168.*.* |
用户名 |
root |
密码 |
12345 |
数据库选用 |
t2 |
表名 |
test2 |
表结构 |
name char(10),pw char(50) |
----------------------------代码---------------------------------------------------------------------------------
#写一个注册接口,输入用户名、密码、验证码:
# 如果用户存在,返回2000(exit 用户已存在);
# 如果密码与验证码不一致,返回3000(wrong 密码不一致);
# 如果注册成功,返回1000(insert 插入成功) #注意:
#1、接口返回json.dumps(res, ensure_ascii=False)
#2、接口中的sql语句传递变量%s 需要“”;
# sql = 'insert into test2(name,pw) values ("%s","%s")' % (username, new_password)
#3、md5加密,参数需要encode,返回值需要hexdigest()
import flask
import requests
import json
import pymysql
import hashlib MYSQL_INFO = {
'host':'192.168.*.*',
'user':'root',
'password':'12345',
'port':3306,
'db':'t2',
'charset':'utf8',
'autocommit':'True'
}#数据库配置信息 def my_db(sql,**kwargs):
host=kwargs.get('host')
user = kwargs.get('user')
password = kwargs.get('password')
port = kwargs.get('port')
db = kwargs.get('db')
charset = kwargs.get('charset')
autocommit = kwargs.get('autocommit') coon = pymysql.connect(host=host, user=user, password=password, port=port, db=db, charset=charset,autocommit=autocommit)
cur = coon.cursor()
cur.execute(sql)
sql_start=sql[:6].lower()
if sql.startswith('select') or sql.startswith('show'):
data=cur.fetchall()
else:
data='OK'
cur.close()
coon.close()
print(data)
return data def md_5(pd):
newpd = hashlib.md5(pd.encode())
# print(newpd.hexdigest())
return newpd.hexdigest() server = flask.Flask(__name__)
@server.route('/regist',methods=['get','post'])
def regist():
username = flask.request.values.get('username')
password = flask.request.values.get('password')
cpassword = flask.request.values.get('cpassword') sql = 'select * from test2 where name="%s"' %username
all_data=my_db(sql,**MYSQL_INFO)
print(all_data)
if all_data:
res = {'code': '2000', 'msg': 'exit 用户已存在'}
else:
new_password=md_5(password)
print(new_password)
if password==cpassword:
sql = 'insert into test2(name,pw) values ("%s","%s")' % (username, new_password)
my_db(sql, **MYSQL_INFO)
res = {'code': '1000', 'msg': 'insert 插入成功'}
else:
res = {'code': '3000', 'msg': 'wrong 密码不一致'}
return json.dumps(res, ensure_ascii=False) if __name__ == "__main__":
server.run(port=9009, debug=True) ---------------------------用postman与soapui与jmeter访问------------------------------------------ 三种调用接口方式在返回正确代码时,均能将数据插入到数据库中:
1)postman访问

2)soapui访问
注意:soapui新建rest项目时,需要输入网址,系统自动分开方填入reques界面第一行。
A:新建rest项目

B:输入url:

c:输入参数

3、jmeter访问结果


python-----编写接口,使用postman与soapiu与jemeter访问调用的更多相关文章
- python编写接口初识一
python编写接口这里用到的是他一个比较轻量级的框架 flask #!/usr/bin/python # -*- coding: UTF-8 -*- import flask,json server ...
- python编写接口
- (转)python编写登录接口
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://506554897.blog.51cto.com/2823970/1907262 ...
- 使用 Python 编写登陆接口
# 使用 Python 编写登陆接口# Create Date: 2017.10.31 Tuesday# Author: Eric Zhao# -*- coding:utf-8 -*-'''编写登陆接 ...
- 如何使用 Python 编写后端 API 接口
如何使用 Python 编写后端 API 接口 get API Python3 # coding:utf-8 import json # ModuleNotFoundError: No module ...
- python+pytest接口自动化(12)-自动化用例编写思路 (使用pytest编写一个测试脚本)
经过之前的学习铺垫,我们尝试着利用pytest框架编写一条接口自动化测试用例,来厘清接口自动化用例编写的思路. 我们在百度搜索天气查询,会出现如下图所示结果: 接下来,我们以该天气查询接口为例,编写接 ...
- python+requests接口自动化测试
转自https://my.oschina.net/u/3041656/blog/820023 原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测 ...
- python+requests接口自动化测试框架实例详解
python+requests接口自动化测试框架实例详解 转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实 ...
- python实现接口自动化
一.总述 Postman:功能强大,界面好看响应格式自主选择,缺点支持的协议单一且不能数据分离,比较麻烦的还有不是所有的公司都能上谷歌SoupUI:支持多协议(http\soup\rest等),能实现 ...
随机推荐
- 【C++】C++中变量的声明与定义的区别
声明(declaration):意味着告诉编译器关于变量名称.变量类型.变量大小.函数名称.结构名称.大小等等信息,并且在声明阶段不会给变量分配任何的内存. 定义(definition):定义就是在变 ...
- Unity应用架构设计(10)——绕不开的协程和多线程(Part 1)
在进入本章主题之前,我们必须要了解客户端应用程序都是单线程模型,即只有一个主线程(Main Thread),或者叫做UI线程,即所有的UI控件的创建和操作都是在主线程上完成的.而服务器端应用程序,也就 ...
- Centos7.4别名设置提高工作效率
一.打开 .bashrc文件 1.位置:~(cd ~)目录下 2.cat .bashrc 原文件内容如下: # .bashrc # User specific aliases and function ...
- MyBatis3 入门学习指南
官网原文:http://www.mybatis.org/mybatis-3/zh/index.html 1.简介 1.1 什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持定制化 ...
- csproj文件中copy指令的使用方式
实际开发中有很多项目需要引用第三方的dll或者资源文件,且文件比较多,在运行时这些文件需要被拷贝到BIN目录. 使用VS自带的"复制到输出目录",似然方便,但是比较不零活,经过多次 ...
- ftp软件中保持连接命令CWD、PWD、LIST、NOOP四个操作命令解析
转自:http://www.aspjzy.com/A/148.html 各位站长都知道,我们在维护网站的时候,经常需要一直保持ftp连接状态,这个时候在很多ftp客户端软件中都有一个保持全局连接的选项 ...
- mysql查询某一个字段是否包含中文字符
在使用mysql时候,某些字段会存储中文字符,或是包含中文字符的串,查询出来的方法是: SELECT col FROM table WHERE length(col)!=char_length(col ...
- mysql 存储过程、循环
CREATE PROCEDURE questionProc() BEGIN declare pgId ); declare pGuid varchar(); -- 定义游标卡尺 declare don ...
- Kafka中bootstrap-server、broker-list和zookeeper的区别
参考 Kafka bootstrap-servers vs zookeeper in kafka-console-consumer 中说建议使用新版(新版本指的是kafka 0.8.0之后的版本)的 ...
- etl数据同步工具 kettle
kellet使用 https://www.cnblogs.com/gala1021/p/7814712.html