• 0
  • 0
分享
  • 测试工具python版——软件测试圈
  • TIMI 2021-08-10 10:29:13 字数 2839 阅读 1406 收藏 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.1 功能测试流程功能测试大致按照以下流程进行:(1)需求分析与评审(2)测试计划与测试(3)测试用例设计(4)测试用例评审(5)执行用例(6)缺陷跟踪及报告产出1.2 功能测试流程详解(1)需求分析与评审功能测试应从需求出发,功能测试就是尽量覆盖用户需求,是软件能够最大程度满足用户的需求,在开始功能测试之前,技术人员应一起进行需求评审,明确需求,避免需求出现问题,导致后面开发,测试在错误的基础上进行测试人员在需求评审过程中要:确认自己对需求理解清晰,不存在疑惑确认需求文档完整,准确,能够为后期测试工作所使用对需求中不合理的地方提出自己的修改建议(2)测试计划与测试方案测...
            0 0 1154
            分享
          •   据报道,LG在宣布与 Meta 成立合资企业仅三个月后,就暂停了与 Meta 合作开发扩展现实(XR)设备,原本双方打算设计制造一款可对抗苹果Vision Pro头显的产品。据韩国多家新闻媒体都报道称,Meta与LG的合作关系已经完全破裂,原因是两家公司之间缺乏"协同效应",但 LG 却否认终止了这项交易。  今年 2 月,LG 首席执行官 William Cho 和家庭娱乐公司总裁 Park Hyoung-sei 与 Meta 首席执行官马克-扎克伯格会面,商讨合作事宜。  LG 电子在给《中央日报》的一份声明中说:"LG 电子会继续与 Meta 公司在 2...
            0 0 778
            分享
          •    模块和包的定义  模块的定义:任何  *.py  的文件都可以当作模块使用  import  导入  包的定义:包含一个__init__.py和其他模块、其他子包的一个目录  实际项目中,所谓的包和模块分别代表什么,如下:  包就是指 test  模块就是 do_excel.py , http_request.py , run.py  我们以上面这个目录讲解,在 run.py 文件中导入各个包的方式  导入单个test包 import test  导入report、log包   ...
            1 1 1820
            分享
          • 1、自动化测试面试技术详解:web自动化APP自动化接口自动化今年的软件测试的招聘需求,在所有薪资相对客观的岗位上都会明确标注:懂得一门编程语言,Java/Python懂得研发测试工具、测试框架、具备自动化测试能力今年的面试官主要询问的面试问题方向:自动化元素定位:是自动化测试中最为基础的能力在测试框架中,如何准确进行元素的定位,以及在版本迭代中如何轻便维护元素的相关信息。核心就是自动化测试中如何管理页面元素。2、解决元素问题一般会选择套用设计模式来进行管理:基于关键字的形态。所有的元素信息全部保存在文件中。基于POM的形态,所有的元素信息与页面对象关联。关键字驱动面试讲解(关键在于你需要自主...
            11 12 1692
            分享
          •   2018 年在亚利桑那州坦佩(Tempe)造成一名 49 岁妇女死亡的优步(Uber)自动驾驶汽车的司机承认了一项危害罪,并于周五被判处三年缓刑。拉斐拉-巴斯克斯(Rafaela Vasquez)在亚利桑那州的 Uber 自动驾驶汽车测试项目中担任安全驾驶员。当她的车辆碾过推着自行车过马路的伊莱恩-赫兹伯格(Elaine Herzberg)时,她正坐在方向盘后。  据了解,这起发生在2018年3月18日的车祸是第一起涉及自动驾驶汽车的致命碰撞事故。  据《亚利桑那共和报》(Arizona Republic)报道,检察官将瓦斯奎兹描述为车辆的"眼睛和耳朵",碰撞发生时,车...
            0 0 1005
            分享
      • 51testing软件测试圈微信