整体框架使用的是:Python+Unittest+Requests+PyMysql+HTMLReport 多线程并发模式

主要依赖模块 Unittest、Requests、PyMysql、HTMLReport,多线程的并发的一个好处在于能更快速的执行完数量庞大的接口自动化用例数

包含以下几个模块:

1. Business:与业务相关的公共模块

get_login_token:接口自动化过程中需要实时获取token,并将实时获取的token传给下个接口作为请求参数

from Business.url import url_login

import requests, json

def login_token(username=11111, password=123456):

"""获取登录后的token"""

headers = {'Content-Type': 'application/json;charset=UTF-8'}

request_param = {

"username": username,

"password": password

}

response = requests.post(url_login, data=json.dumps(request_param), headers=headers)

# 返回JSON中data数据的token

print(response.json()['data']['token'])

return response.json()['data']['token']

if __name__ == '__main__':

login_token()

headers:头部信息

headers = {

'Content-Type': "application/x-www-form-urlencoded",

'X-Requested-With': "XMLHttpRequest",

'Content-Length': "124",

'Connection': "keep-alive"

}

Common:与业务无关公共模块

connect_db:连接数据库,并操作数据库

import pymysql

# python3用的是pymysql,python2用的是MySQLdb

class OperationMysql:

"""

数据库SQL相关操作

"""

def __init__(self):

self.conn = pymysql.connect(

host='127.0.0.1',

port=3306,

user='test',

passwd='111111',

db='test',

charset='utf8',

cursorclass=pymysql.cursors.DictCursor

)

self.cur = self.conn.cursor()

# 查询一条数据

def search_one(self, sql):

self.cur.execute(sql)

result = self.cur.fetchone()  # 只显示一行结果

# result = self.cur.fetchall()  # 显示所有结果

return result

# 更新SQL

def updata_one(self, sql):

self.cur.execute(sql)

self.conn.commit()

self.conn.close()

if __name__ == '__main__':

op_mysql = OperationMysql()

res = op_mysql.search_one("SELECT *  from odi_order WHERE order_no='12222'")

print(res)

TestCase:测试用例层

test_case:外汇返佣

import unittest

from HTMLReport import logger

import requests

from Business.url import erp_url

class Category(unittest.TestCase):

"""ERP属性接口"""

def setUp(self):

self.session = requests.Session()

logger().info("获取会话")

def tearDown(self):

self.session.close()

logger().info("关闭会话")

def test_type_list(self):

"""get请求方式"""

s = self.session

querystry = {}

r = s.get(erp_url + '/xxx.list', params=querystry)

logger().info(f"返回数据{r.json()}")

self.assertEqual("success", r.json().get("msg"))

def test_pay_success_recommend(self):

"""Post请求方式"""

s = self.session

payload = {

"token": login_token,

"p": "ios",

"v": "5.6.0",

"order_no": "111111"

}

r = s.post(erp_url + '/xxxxx/aaa', data=payload)

logger().info(f"返回数据:{r.json()}")

self.assertEqual('success', r.json().get('msg'))

TestSuite:测试套件封装

suite_api:测试套件

import unittest

from Test_Case.refactor import test_order

def get_suite():

suite = unittest.TestSuite()

loader = unittest.TestLoader()

suite.addTests(loader.loadTestsFromTestCase(test_order.Apitests))

return suite

Run:主运行文件

import unittest

from Test_Suite import suite_api

import HTMLReport

import time

suite = unittest.TestSuite()

suite.addTests(suite_api.get_suite())

HTMLReport.TestRunner(

title="XXX项目测试报告",

description="测试人员:CesareCheung",

report_file_name=f"testreport",

thread_count=50

).run(suite)

原文链接:https://blog.csdn.net/weixin_42760923/article/details/103505791

Python+Unittest+Requests+PyMysql+HTMLReport 多线程并发接口化框架的更多相关文章

  1. Python+Unittest+Requests+PyMysql+HTMLReport 接口自动化框架

    整体框架使用的是:Python+Unittest+Requests+PyMysql+HTMLReport  多线程并发模式 主要依赖模块 Unittest.Requests.PyMysql.HTMLR ...

  2. 接口自动化-python unittest+requests+HTMLrunner

    从2015年毕业入行软件测试,快满4年了,之前技术分享都在百度贴吧上面,现在正式开始在博客中记录工作技术,努力成长,加油 接口测试的步骤1.组装好该接口需要的参数数据2.使用get或post附带参数数 ...

  3. python+unittest+requests+HTMLRunner编写接口自动化测试集

    问题描述:搭建接口测试框架,执行用例请求多个不同请求方式的接口 实现步骤: ① 创建配置文件config.ini,写入部分公用参数,如接口的基本url.测试报告文件路径.测试数据文件路径等配置项 [D ...

  4. python+unittest+requests实现接口自动化

    前言: Requests简介 Requests 是使用 Apache2 Licensed 许可证的 HTTP 库.用 Python 编写,真正的为人类着想. Python 标准库中的 urllib2  ...

  5. 接口自动化框架(Pytest+request+Allure)

    前言: 接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成本更小,所以深受各大公司的喜爱. 接口自动化包含2个部分,功能性的接口自动化测试和并发接口自动化测试. 本次文章着重介绍第一种, ...

  6. python版接口自动化测试框架源码完整版(requests + unittest)

    python版接口自动化测试框架:https://gitee.com/UncleYong/my_rf [框架目录结构介绍] bin: 可执行文件,程序入口 conf: 配置文件 core: 核心文件 ...

  7. 转载:python + requests实现的接口自动化框架详细教程

    转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实现的接口自动化框架详细教程 前段时间由于公司测试方向的转型,由 ...

  8. python+requests接口自动化测试框架实例详解教程

    1.首先,我们先来理一下思路. 正常的接口测试流程是什么? 脑海里的反应是不是这样的: 确定测试接口的工具 —> 配置需要的接口参数 —> 进行测试 —> 检查测试结果(有的需要数据 ...

  9. python+requests接口自动化测试框架实例详解

    python+requests接口自动化测试框架实例详解   转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实 ...

随机推荐

  1. C++ 分治思想 真假银币

    #include "stdio.h" #include "iostream" #define MAXNUM 30 int FalseCoin(int coin[ ...

  2. Python 中内建属性 __getattribute__

    参考自:https://blog.csdn.net/yitiaodashu/article/details/78974596 __getattribute__是属性访问拦截器,就是当这个类的属性被访问 ...

  3. 【LeetCode 84】柱状图中最大的矩形

    题目链接 [题解] 维护一个单调递增的栈. 会发现栈内的第i个元素的前面一个(i-1)元素在原始的序列中的数字 都是要高于第i个元素的.(或者没有元素) 那么第i个元素往左最多可以扩展到第i-1个元素 ...

  4. C++ string.replace的使用

    //下面是一个检查一个字符串中是否有'.'的函数,该函数将找到的'.'转化为'_'. inline void checkName(string& name) { std::; while (s ...

  5. Acunetix Web Vulnerability Scanner(WVS)(Acunetix网络漏洞扫描器)

    Acunetix网络漏洞扫描软件检测您网络的安全性安全测试工具Acunetix Web Vulnerability Scanner(WVS) (Acunetix网络漏洞扫描器)技术 网络应用安全扫描技 ...

  6. LOJ 2541 「PKUWC2018」猎人杀——思路+概率+容斥+分治

    题目:https://loj.ac/problem/2541 看了题解才会……有三点很巧妙. 1.分母如果变动,就很不好.所以考虑把操作改成 “已经选过的人仍然按 \( w_i \) 的概率被选,但是 ...

  7. mysql审计插件

    Audit Plugin安装使用 原文: https://www.cnblogs.com/waynechou/p/mysql_audit.html#_label0   #有卸载方法 下载地址: htt ...

  8. servlet3.0 异步处理

    转:https://blog.csdn.net/benjamin_whx/article/details/38874657 13.1.概述 计算机的内存是有限的.Servlet/JSP容器的设计者很清 ...

  9. python 装饰器 第三步:使用语法糖

    # 第三步:使用语法糖(就是语法) # 用于扩展基本函数的函数 def kuozhan(func): # 扩展功能1 print('饭前要洗手') # 调用基本函数 func() # 扩展功能2 pr ...

  10. Visual Assist 10.9.2248 破解版(支持VS2017) 转载

    自己在Windows10下同时安装了VS2017和VS2013,先装的VS2017和Visual Assist,后装的VS2013,发现VS2013中没显示Visual Assist,Google了一 ...