• 0
  • 0
分享
  • 测试工具python版——软件测试圈
  • 北极 2021-08-27 11:02:37 字数 2839 阅读 1041 收藏 0

index:

  1. 比较两列表元素(不考虑顺序,不考虑重复);

  2. 调get型数据库接口,循环造数据(示例);

  3. 连接操作mysql数据库;

  4. 多进程执行pytest UI脚本(示例)。

1、比较两列表元素(不考虑顺序,不考虑重复)

def compareList(list1, list2):
    """比较列表元素,不考虑顺序,不考虑重复"""
    if sorted(set(list1)) == sorted(set(list2)):
        print('\n不考虑顺序,不考虑重复时,两个列表等价')
    else:
        a, b = [], []
        exist = 0
        for i in list1:
            for j in list2:
                if i == j:
                    exist = 1
                    break
                else:
                    exist = 0
            if exist == 0:
                a.append(i)
        for j in list2:
            for i in list1:
                if j == i:
                    exist = 1
                    break
                else:
                    exist = 0
            if exist == 0:
                b.append(j)
        print(f'\n两个列表不等价,列表1独特元素是:{a} \n两个列表不等价,列表2独特元素是:{b}')

效果:

1.jpg

2、调get型数据库接口,循环造数据(示例)

import requests,json,random
def send_get(url,params,headers={}):
    """get型接口调用"""
    response=requests.get(url=url,params=params,headers=headers)
    res_dict=json.loads(response.text)
    return res_dict
tasktype=['新建','活动中','已完成']
state=['取消','搁置','已完成']
url = 'https://xxx.yyy.zzz:18030/jdbcplat/update'
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
for i in range(10001):
    sql=f'''
    insert into base_tasklist (id,tasktype,state) 
    values(10678+{i},{random.choices(tasktype)},{random.choice(state)})
    '''
    params={'server':'dlpt','sql':sql}
    print(send_get(url,params,headers))

3、连接操作mysql数据库

# coding=utf-8
# encoding: utf-8
"""
Author:刘源
Createtime:2021/08/08 14:25:42
Updatetime:2021/08/08 14:25:42
Description:
"""
import time, sys
# 上下文管理器,自动关闭文件,自动处理文件冲突
with open('tt21.txt', 'a') as f:
    f.write(f'{__file__}运行记录:')
    f.write(time.ctime())
    f.write('---' + str(time.time()) + '\n')
    print(sys.path)
# 连接mysql数据库
import MySQLdb
db = MySQLdb.connect(host="192.168.1.103", user="root",passwd= "Liuyuan3.14", db="tt1", charset='utf8',port=3306)
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 使用execute方法执行SQL语句
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取一条数据
data = cursor.fetchone()
print("Database version : %s " % data)
sql1='''select * from users'''
sql2="""INSERT INTO tt1.users (id, name, chinese, math, English, physics) 
VALUES (8, '冯锐', 77, 73, 93, 59);"""
# 使用execute方法执行SQL语句
cursor.execute(sql2)
db.commit() #增删改,需要提交;查询不用
cursor.execute(sql1)
# 使用 fetchone() 方法获取一条数据
data1 = cursor.fetchall()
for i in data1:
    print('select * from users',i)
# 关闭数据库连接
db.close()

效果:

2.jpg

注意,mysql连接失败原因可能有如下,可逐一排除:

①Linux防火墙没关→systemctl stop firewalld,临时关闭它(不建议通过配置文件永久关闭)

②SeLinux模块的阻碍→setenforce 0,临时设置为带警告的强制执行模式(不建议通过配置文件永久关闭)

③服务器ip地址错误,尤其不是固定ip,又没域名映射、自动转换时→确定正确ip

④mysql没开启指定用户在指定ip的远程连接权限→自行设置哦

⑤Linux没有监听所有ip的连接请求→netstat -anop | grep -in mysql,自行验证下

⑥其他原因,比如系统升级,版本升级→试试重启,重启解决一半问题

4、多进程执行pytest UI脚本(示例)

3.jpg

效果:

4.jpg


作者:站在在巨人的肩膀上看世界

原文链接:https://blog.csdn.net/Tiandao60/article/details/119491807

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 摘要:记录开发过程中遇到的问题,希望对诸君有所帮助,快速解决开发中遇到的类似问题。最近再开发过程中,因为公司增加了小程序业务,需在公众号中增加小程序的跳转,故将公众号跳转小程序的方法整理如下,供诸位使用,避免采坑。重点:只能跳转与公众号关联的小程序。1、公众号自定义菜单跳转到小程序http请求方式:POST(请使用https协议)接口:https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN;自定义菜单格式如下:2、开放标签跳转小程序:1. 引入JS文件在需要调用JS接口的页面引入如下JS文件:http://...
            0 0 657
            分享
          •   有没有遇到这样的一个场景:你在使用浏览器进行web应用测试,但是你想知道你在测试过程中的前端输出和后端响应的情况究竟如何。那么,你会怎么做呢?  想必大多人会毫不犹豫地回答:通过浏览器console面板和network面板抓取信息啊!的确如此,这不失为一个好办法。  但是,这难道需要时时刻刻地关注面板输出吗?这实在是有碍测试效率啊。  有什么办法,既不阻碍测试效率,也能获取到相应的信息呢?  答案当然是肯定的。  不得不说的ResourceSaver  有这么一个浏览器插件,它可以记录你在浏览器上的所有操作(例如,点击、输入等),提供了css、js、img和xhr等资源的下载,能够帮助你进...
            0 0 1061
            分享
          • 软件测试 是软件开发周期中的一个阶段,在此阶段中,对关键业务软件进行正确性,质量和性能验证。软件测试中有四个基本级别,每个级别都在开发过程中从独特的角度检查软件功能。本文详细介绍了集成测试,这是软件测试的第一级。 什么是集成测试?集成测试是软件测试的一个级别,其中将各个单元组合并进行测试,以验证它们在集成时是否按预期工作。这里的主要目的是测试模块之间的接口。由于多种原因,仅单元测试是不够的,例如:模块/单元通常由单独的软件开发人员设计,其技术和编程逻辑与其他程序员不同通常在模块开发时,用户需求会发生变化,并且这些新需求可能未经过单元测试。这引发了问题在单元测试期间,有时会遗漏诸如数据...
            0 0 744
            分享
          • 测试工作中有时候会对数据库进行压力测试,jmeter实现这个需求较为简单,在这里简单介绍下。可以参考我之前写的15. Jmeter-配置元件二步骤:1、选中测试计划,添加mysql-connector-java-5.1.7-bin.jar插件2、添加一个线程组,设置线程组为103、选中线程组,添加一个配置元件:JDBC Connection Configuration4、对配置元件进行配置5、添加JDBC request6、对JDBC request 进行配置7、添加查看结果树8、运行测试计划作者:软件测试汪链接:https://www.jianshu.com/p/be496e4e00be
            0 0 1074
            分享
      • 51testing软件测试圈微信