python自动化测试模板

news2024/11/24 1:38:46

1:准备html模版

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title>接口自动化</title>

</head>

<body style="margin-top: 20px; font-style: '微软雅黑';">

<table border="1" cellspacing="0" cellpadding="5" width="100%" align="center">

    <tr bgcolor="bisque" style="font-style: 30px">

        <td height="60" colspan="5">

            自动化测试报告:&test_data

             

        </td>

    </tr>

    <tr style="font-style: 20px">

        <td width="20%">被测版本:&version</td>

        <td width="15%">成功:&pass</td>

        <td width="15%">失败:&fail</td>

        <td width="15%">错误:&error</td>

        <td width="30%">最后时间:&lasttime</td>

    </tr>

</table>

<p></p>

<table border="1" cellspacing="0" cellpadding="5" width="100%" align="center">

    <tr height="40" bgcolor="darkseagreen">

        <td width="7%">记录编号:</td>

        <td width="10%">记录编号:</td>

        <td width="9%">记录编号:</td>

        <td width="7%">记录编号:</td>

        <td width="20%">记录编号:</td>

        <td width="7%">记录编号:</td>

        <td width="15%">记录编号:</td>

        <td width="15%">记录编号:</td>

        <td width="10%">记录编号:</td>

        <td width="10%">记录编号:</td>

    </tr>

    &test_result

</table>

</body>

</html>

 打开模版,数据替换

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

'''

Created on Aug 8, 2019

@author: liliang

'''

import os

import time

from ctypes.test.test_pickling import name

class MyClass():

    '''

    classdocs

    '''

    def __init__(self):

        pass

    def open_file(self):

        tempfile=os.path.abspath("..")+"/demo/2.html"

        tem=open(tempfile, mode='r', encoding='utf-8').read()

        return tem

    def write_file(self,file,test_data,version,passnum,faillnum,errornum,lasttime,all_data):

        file=file.replace("&test_data",test_data)

        file=file.replace("&version",version)

        file=file.replace('&pass',passnum)

        file=file.replace('&fail',faillnum)

        file=file.replace('&error',errornum)

        file=file.replace('&lasttime',lasttime)

        content=''

        for in range(0,len(all_data)):

            if all_data[i]["name"=="粉丝":

                content+="<tr height=40 bgcolor='red'>"

                content+="<td width='7%%' >%s</d>" %str(all_data[i]["name"])

                content+="<td width='7%%'>%s</d>" %str(all_data[i]["age"])

                content+="<td width='7%%'>%s</d>" %str(all_data[i]["sex"])

                content+="<td width='7%%'>%s</d>" %str(all_data[i]["school"])

                content+="<td width='7%%'>%s</d>" %str(all_data[i]["work"])

                content+="<td width='7%%'>%s</d>" %str(all_data[i]["address"])

                content+="<td width='7%%'>%s</d>" %str(all_data[i]["sex1"])

                content+="<td width='7%%'>%s</d>" %str(all_data[i]["school2"])

                content+="<td width='7%%'>%s</d>" %str(all_data[i]["work3"])

                content+="<td width='7%%'>%s</d>" %str(all_data[i]["address4"])

                content+="</tr>"

            else:

         

                content+="<tr height=40 bgcolor='bisque'>"

                content+="<td width='7%%' >%s</d>" %str(all_data[i]["name"])

                content+="<td width='7%%'>%s</d>" %str(all_data[i]["age"])

                content+="<td width='7%%'>%s</d>" %str(all_data[i]["sex"])

                content+="<td width='7%%'>%s</d>" %str(all_data[i]["school"])

                content+="<td width='7%%'>%s</d>" %str(all_data[i]["work"])

                content+="<td width='7%%'>%s</d>" %str(all_data[i]["address"])

                content+="<td width='7%%'>%s</d>" %str(all_data[i]["sex1"])

                content+="<td width='7%%'>%s</d>" %str(all_data[i]["school2"])

                content+="<td width='7%%'>%s</d>" %str(all_data[i]["work3"])

                content+="<td width='7%%'>%s</d>" %str(all_data[i]["address4"])

                content+="</tr>"

                 

#         for result in all_data:

#             content+="<tr height=40>"

#             content+="<td width='7%%'>%s</d>" %str(result[0])

#             content+="<td width='7%%'>%s</d>" %str(result[1])

#             content+="<td width='7%%'>%s</d>" %str(result[2])

#             content+="<td width='7%%'>%s</d>" %result[3]

#             content+="<td width='7%%'>%s</d>" %result[4]

#             content+="<td width='7%%'>%s</d>" %result[5]

#             content+="<td width='7%%'>%s</d>" %result[6]

#             content+="<td width='7%%'>%s</d>" %result[7]

#             content+="<td width='7%%'>%s</d>" %result[8]

#             content+="<td width='7%%'>%s</d>" %result[9]

#             content+="</tr>"

        file=file.replace('&test_result',content)

        file_folder=os.path.abspath("..")+"/demo/"

        file_name=file_folder+time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())+".html"

        report_file=open(file_name, mode="w+",  encoding='utf-8')

        report_file.write(file)

        report_file.close()

    def get_datetime(self):

        now_time=time.strftime("%Y_%M_%d_%H:%M:%S",time.localtime())

        return now_time

if __name__ == '__main__':

    my=MyClass()

    file=my.open_file()

    all_data=[

            {"name":"Tom","age":23,"sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小学2","work3":"学生","address4":"上海"},

            {"name":"数据","age":"13","sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小3学","work3":"学生","address4":"上海"},

            {"name":"粉丝","age":"13","sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小学4","work3":"学生","address4":"上海"},

            {"name":"阿道夫","age":"13","sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小fs学","work3":"学生","address4":"上海"},

            {"name":"二娃","age":"13","sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小学fa","work3":"学生","address4":"上海"},

            {"name":"我确认","age":"13","sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小学","work3":"学生","address4":"上海"},

            {"name":"特务","age":"13","sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小学fa","work3":"学生","address4":"上海"},

            {"name":"突然","age":"13","sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小学ddd","work3":"学生","address4":"上海"},

            {"name":"圈儿","age":"13","sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小asss学","work3":"学生","address4":"上海"},

            {"name":"让他","age":"13","sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小学fdsaa","work3":"学生","address4":"上海"},

              ]

    my.write_file(file"2019_07_08_03:07:59""1.3.0""90""7""key error""2019_07_08_03:07:59", all_data)

        

1

 生成报告

工程目录

Python接口自动化测试零基础入门到精通(2023最新版)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1168085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库管理-第114期 Exadata 05-ESS-上(202301103)

数据库管理-第114期 Exadata 05-ESS-上&#xff08;202301103&#xff09; 之前提到过&#xff0c;Exadata通过ESS将存储转换为了智能存储&#xff0c;其实相较于纸面参数非常牛逼但性能还是比不过Exadata的国产一体机&#xff0c;最大的差距也就是在ESS上&#xff0c;从数据库…

自动化测试如何准备测试数据

其实大部分类型的测试都需要去准备测试数据。 手工测试&#xff1a;一些基础数据&#xff0c;比如配置数据等等是需要去准备的&#xff1b;自动化测试&#xff1a;基础需要准备&#xff0c;现有数据&#xff0c;动态运行时产生的数据是需要准备的&#xff1b;性能测试&#xf…

华为云API Explorer伙伴招募火热进行中~

API编排新特性助力伙伴 零代码构建API工作流 实现快速集成场景编排能力 面向三大核心场景&#xff1a; API调用逻辑频繁改动 API间高耦合不便管理 复杂API解决方案难构建 伙伴加入可立享四大限时福利&#xff1a; 免费试用、专家咨询、技术指导、生态支持 点此报名>&…

XSpirit 2智能边缘计算机使用测评

博客主页&#xff1a;https://tomcat.blog.csdn.net 博主昵称&#xff1a;农民工老王 主要领域&#xff1a;Java、Linux、K8S 期待大家的关注&#x1f496;点赞&#x1f44d;收藏⭐留言&#x1f4ac; 目录 拆箱过程介绍视频使用感受 我之前就参加过 Spirit 1 第一代智能边缘计…

Web自动化测试 —— PageObject设计模式!

一、page object 模式简介 1.1、传统 UI 自动化的问题 无法适应 UI 频繁变化无法清晰表达业务用例场景大量的样板代码 driver/find/click 二、page object 设计原则 2.1、POM 模式的优势 降低 UI 变化导致的测试用例脆弱性问题让用例清晰明朗&#xff0c;与具体实现无关 2.…

人工智能AI创作系统ChatGPT网站系统源码+AI绘画系统支持GPT4.0/支持Midjourney局部重绘

一、前言 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建…

压缩软件 7-Zip VS WinZips

7-zip在联想应用商店给强烈推荐&#xff1f; 要说它好用还行&#xff0c;但每次压缩都显示网络连接失败等异常广告信息。 相反好用的7-ZIP必须鼠标点击右键点击更多才能够看到&#xff0c;这次更新体验也太差了吧&#xff1f; 用户放在第一位&#xff1f; 要不是更新后一直推…

【技术分享】RK356X Android 使用 libgpiod 测试gpio

前言 libgpiod 是用于与 Linux GPIO 字符设备交互的 C 库和工具库&#xff1b;此项目包含六种命令行工具&#xff08;gpiodetect、gpioinfo、gpioset、gpioget、gpiomon&#xff09;&#xff0c;使用这些工具可以在命令行设置和获取GPIO的状态信息&#xff1b;在程序开发中也可…

Python库学习(十二):数据分析Pandas[下篇]

接着上篇《Python库学习(十一):数据分析Pandas[上篇]》,继续学习Pandas 1.数据过滤 在数据处理中&#xff0c;我们经常会对数据进行过滤&#xff0c;为此Pandas中提供mask()和where()两个函数&#xff1b; mask(): 在 满足条件的情况下替换数据&#xff0c;而不满足条件的部分…

BUUCTF 另外一个世界 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 下载附件&#xff0c;解压得到一个.jpg图片。 密文&#xff1a; 解题思路&#xff1a; 1、这道题我尝试了很多方法&#xff0c;知道看了别人的wp才知道flag在我忽略的地方。将图片在010 Editor中打开&#xff0c;从…

Redis学习系统(持续更新中)

RedisExample 课程介绍 目标是提供一个高效、可靠的学习和实践Redis的环境。我们将通过搭建Redis集群、实现缓存数据的持久化存储、制定缓存数据的淘汰策略以及同步缓存数据等步骤来深入了解和学习Redis的特性和功能。通过这个项目&#xff0c;你可以掌握Redis的核心概念和技…

vue+asp.net Web api前后端分离项目发布部署

一、前后端项目介绍 1.前端项目是使用vue脚手架进行创建的。 脚手架版本&#xff1a;vue/cli 5.0.8 编译器版本&#xff1a;vs code 1.82.2 2.后端是一个asp.net Core Web API 项目 后端框架版本&#xff1a;.NET 6.0 编译器版本&#xff1a;vs 2022 二、发布部署步骤 第…

预处理详解(二)

1.宏和函数对比 宏通常被应用于执行简单的运算。 比如在两个数中找出较大的一个。 #define MAX(a, b) ((a)>(b)?(a):(b)) 那为什么不用函数来完成这个任务&#xff1f; 原因有二&#xff1a; 1. 用于调用函数和从函数返回的代码可能比实际执行这个小型计算工作所…

C++笔记之实现多态的所有方法

C笔记之实现多态的所有方法 文章目录 C笔记之实现多态的所有方法1.C中多态是是什么&#xff1f;请用简洁准确的话描述2.虚函数实现多态2.1.虚函数&#xff08;Virtual Functions&#xff09;2.2.纯虚函数&#xff08;Pure Virtual Functions&#xff09;2.3.虚析构函数&#xf…

lesson3-C++类和对象(下)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 再谈构造函数 构造函数体赋值 初始化列表 explicit关键字 Static成员 概念 特性 友元 友元函数 友元类 内部类 匿名对象 拷贝对象时的一些编译器优化 再次理解封装 练习题 再谈构造函数 构造函数体赋值…

瑞禧生物分享~普鲁士蓝纳米酶 Prussian Blue PB

名称&#xff1a;普鲁士蓝纳米酶&#xff1a;Fe4[Fe(CN)6]3、KFe[Fe(CN)6] NZs 包装&#xff1a;1mg/ml 应用领域&#xff1a;可作为抗氧化、抗炎新材料&#xff0c;同时具有载药、光热疗、炎症组织成像、构建生物传感器件等领域。 普鲁土蓝(Prusian Blue)&#xff0c;是一种…

gma 2 教程(三)坐标参考系统:3.投影方法

安装 gma&#xff1a;pip install gma 地图投影是利用一定数学法则把地球表面的经、纬线转换到平面上的理论和方法。由于地球是一个赤道略宽两极略扁的不规则的梨形球体&#xff0c;故其表面是一个不可展平的曲面&#xff0c;所以运用任何数学方法进行这种转换都会产生误差和变…

tbh常用的绘图快捷键

1、Altb -> 笔刷 2、Alt/ -> 画笔 3、按住Shift 绘出的线条是直线 4、按住shiftalt 绘出来的线条是水平线或垂直线 5、alte ->橡皮擦 6、alts ->选择工具 7、altq -> 轮廓编辑器 以下操作都是在选中轮廓编辑器下操作的&#xff1a; 按住alt…

高效管理:在文件夹名称左边添加关键字,实现批量重命名

在高效的文件管理中&#xff0c;对文件夹进行合理命名和重命名是十分关键的。有时候&#xff0c;我们可能需要在一批文件夹的名称左边添加特定的关键字&#xff0c;以便更好地组织和管理这些文件夹。为了实现这个目标&#xff0c;我们可以使用云炫文件管理器一些简单的步骤来实…

Java配置47-Spring Eureka 未授权访问漏洞修复

文章目录 1. 背景2. 方法2.1 Eureka Server 添加安全组件2.2 Eureka Server 添加参数2.3 重启 Eureka Server2.4 Eureka Server 升级版本2.5 Eureka Client 配置2.6 Eureka Server 添加代码2.7 其他问题 1. 背景 项目组使用的 Spring Boot 比较老&#xff0c;是 1.5.4.RELEASE…