登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
python自动化测试(2)-自动化基本技术原理 ...
python自动化测试(2)-自动化基本技术原理
[ 复制链接 ]
公西颖初
2025-5-29 00:21:28
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
python自动化测试(2)
自动化基本技术原理
1 概述
在之前的文章里面提到过:做自动化的首要本领就是要会
透过现象看本质
,落实到实际的IT工作中就是
透过界面看数据
。
掌握上面的这样的本领可不是容易的事情,必须要有扎实的计算机理论基础,才能看到深层次的本质东西。
PS:
本文已经收入合集:《基于python的互联网软件测试开发(自动化测试)-全集合》,欢迎访问的查看:
基于Python的互联网软件测试开发
2 应用软件逻辑结构
数据库应用系统
可能是最典型的网络应用程序了,关于它的软件架构如下:
一般在逻辑上分为4层:
用户界面层 UI为终端用户提供交互的人机界面
业务逻辑层 BLL将数据库抽象出来的对象进行拼接成具体的业务逻辑对象,并对之进行流程组织
数据访问层 DAL对DB层做的ORM,让上层应用程序以对象的方式操控数据库
数据持久层 DB存储数据,对数据进行持久化,不同的客户端进行数据共享
在传统的
C/S
架构下应用程序(例如,Windows下的客户端应用程序),一般都是一台中央数据库服务器(
DB
),然后对应N台客户端(
DAL-BLL-UI
)。
对于
初级测试人员
来说,可能对软件的理解只能停留在
UI
层,于是在测试时候能做到的事情就是:日复一日,年复一年地用鼠标
点点点
了。
3 互联网软件架构
在前一部分里面提到的应用软件的基本架构,虽然是在
“C/S”
时代提出来的,但是后面却一直延续到现在 。直到今天最普遍的
“ABC/S”
模式:
App/Server
Browser/Server
Client/Server
其实本质上就把UI这一层放在客户端,把UI以下放在Server端。
客户端在不同的平台下面有不同的表现形式,就形成了现在流行的所谓的
“ABC/S”
模式的架构,这个基本上已经成为目前的互联网产品的标配了。具体的架构如下:
服务器端和客户端之间采用
Http/Https
的通讯协议,数据交换的格式为
Xml/Json
格式。
基于以上模式之后,软件测试的方法论就发生了一些变化:
有了
性价比
最高的“基于于通讯编码格式的接口测试”,属于花20%就能解决80%的工作
接口测试完全可以进行自动化,而且不必强制和开发项目使用相同的语言,可以统一使用效率较高的脚本语言
接口
天然就具有稳定性的需求,所以自动化测试项目不会存在反复折腾的现象
接口测试人员成为了众多平台之间的
裁判员
接口规范来自设计文档,可以实行
设计产生测试,测试驱动开发
的规范模式
有了抽象成数据的能力之后,那么很多看到的东西就可以进行合理的等价转换了:
web页面背景的是红色等价于:背景元素的background的颜色属性是
#FF0000
按钮上显示的字为"Submit"等价于:按钮元素的value值为
Submit
用户执行一次充值活动充了20块钱,他的账号上就多了20元等价于:以20为参数调用充值接口,再对比前后两次调用账号查询的接口,相差刚好是充值的参数值
在数据层次编程进行比较就变得很容易了,因为这些都是计算机擅长处理的领域了,自动化也很自然地实现了。
4 更底层的原理
前面讲到了对把软件项目从看到的具体的界面往底层一点抽象成数据的方法。其实还有一些更底层,更绝的,对软件的数据还可以更底层一点和物理世界建立关联(这已经不好用“抽象”或者“具象”来描述了)。
本部分的内容,已经和应用软件的测试的话题有点扯远了,纯粹就当科普吧。
从更广泛的角度来看一个计算机系统,它给人的体验上本质上是做了如下的处理:
人的所有的直观体验都是来自于对模拟量(物理量)的体验,人的交互输入也是来自于模拟量的输入。
人敲击键盘向计算机系统输入文字,键盘将不同一键位产生的脉冲电流传入计算机系统,计算机系统通过芯片和驱动,将这些电流信号转化成数字信号,然后交付数字芯片处理。这样人就完成了
信息的输入
。
计算机系统对这些数据进行计算,存储,传输等等,最后在LCD显示器上通过点亮不同位置的点阵,以形成光学的模拟量输出,传送到人的眼睛里面,人就完成了
信息的获取
。
以上的例子可以简化为:力学物理量产生电学物理量进行输入,计算机数字系统处理后,光学物理量进行输出。
对于计算机系统,输入和输出都是多样的:
输入装置
各种传感器都可以作为输入的主力,比如现在蓬勃发展的智能硬件,以及炒得火热的
物联网
。
输出装置
除了光学的LCD显示器,还有声学的扩音器,还有滚动的轮式机械力学,还有人形走路的机械手臂力学设备。
这些东西都已经是现在互联网行业很流行的元素了。
由于电子技术和通讯领域往往检测的都是物理量,肉眼是很难量化的,所以测试门槛会很高,但是各种检测仪器反而发展得相当好,自动化程度相当高。反观IT行业的上层的应用软件层,人却都过多的依赖于人工去操作,肉眼去观察了,反而忽视了自动化,导致测试行业一直人员素质不高,技术实力太弱,这显然是很不可取的,至少是很不符合目前软件工程行业的时代需求的。
5 小结
本文对应用软件进行了逻辑上的分层,来阐述了软件自动化测试和基本原理,在文章的后半部分对目前流行的
智能硬件
所涉及的电子技术的自动化测试也进行了简单的探讨,希望能够给从来 自动化测试的人也有一点启发。
后面的系列文章将从技术层次来落地这些理论。
总结起来,对于想入这行而且想有深入发展的人,有如下几个结论和建议:
软件的本质不是界面而是数据
要了解软件的本质,必须必须要有良好的计算机基础
从事互联网行业的人可以熟悉linux,尽早建立这种
软件即数据
的世界观
接口做自动化测试是最投入回报比最高的(来自Google的工程师的观点)
要想做好自动化测试,必须有软件开发能力和系统的设计能力
写到这里,最后容我
“安利”
一下
Linux
,因为相比 MacOS 和 Windows 系统,Linux 在界面这一块做得不太好,但是却有强大的CLI交互,支持强大的脚本编写,对于实现自动化是很有帮助的。
(未完,待续。。。)
后续将开始继续书写 python的自动化工具和编程应用了。
作者:Harmo哈莫作者介绍:https://zhengwh.github.io技术博客:http://www.cnblogs.com/beerEmail:dreamzsm@gmail.comQQ:1295351490时间:2015-11版权声明:欢迎以学习交流为目的读者随意转载,但是请
【注明出处】
支持本文:如果文章对您有启发,可以点击博客右下角的按钮进行
【推荐】
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
自动化
python
测试
基本技术
原理
相关帖子
Python - UV 为每个项目创建独立、干净的Python工作空间
Python包管理告别龟速下载:uv工具国内镜像与离线安装实战
Python环境管理利器Conda:从入门到避坑实战指南
【节点】[RGBtoLuminance节点]原理解析与实际应用
使用Python免费合并PDF文件
基于Python实现微信通知和预警
从繁琐到高效:招聘自动化系统优化招聘流程的关键步骤
嵌入式UI框架的渐变原理、渐变算法
【节点】[LinearToGammaSpaceExact节点]原理解析与实际应用
Python 潮流周刊#132:30 年 Python 自由职业经验
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
Python - UV 为每个项目创建独立、干净的Python工作空间
0
815
匝抽
2025-12-18
业界
Python包管理告别龟速下载:uv工具国内镜像与离线安装实战
0
810
秦欣艷
2025-12-18
业界
Python环境管理利器Conda:从入门到避坑实战指南
0
565
迭婵椟
2025-12-18
安全
【节点】[RGBtoLuminance节点]原理解析与实际应用
1
449
趣侮
2025-12-18
安全
使用Python免费合并PDF文件
0
600
洪势
2025-12-18
业界
基于Python实现微信通知和预警
1
563
盒礁泅
2025-12-18
安全
从繁琐到高效:招聘自动化系统优化招聘流程的关键步骤
1
483
蒋炸役
2025-12-19
业界
嵌入式UI框架的渐变原理、渐变算法
0
935
颖顿庐
2025-12-19
安全
【节点】[LinearToGammaSpaceExact节点]原理解析与实际应用
0
159
欧阳梓蓓
2025-12-20
安全
Python 潮流周刊#132:30 年 Python 自由职业经验
0
930
硫辨姥
2025-12-20
回复
(3)
采序
2025-10-24 00:44:50
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
鼓励转贴优秀软件安全工具和文档!
舒娅友
2025-11-9 20:51:27
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
分享、互助 让互联网精神温暖你我
氛疵
2025-11-14 22:03:27
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享,学习下。
莘度
2025-12-4 08:10:26
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享,学习下。
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
公西颖初
2025-12-4 08:10:26
关注
0
粉丝关注
30
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991124
anyue1937
9994892
kk14977
6845357
4
xiangqian
638210
5
韶又彤
9997
6
宋子
9981
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9950
查看更多
今日好文热榜
737
一文读懂RAG架构如何助力AI
492
一文读懂RAG架构如何助力AI
541
ROS2之TF介绍
397
SW 随笔 001 — InlineArray 带你飞(Since
690
当遇见 CatchAdmin V5-模块化设计重新定义
491
【有手就行】SWIFT:花20分钟把大模型的名
561
论文速读记录 | 2025.12(2)
374
浮点数的本质:为什么计算机无法精确表示0.
727
Flink源码阅读:如何生成JobGraph
929
Python 潮流周刊#132:30 年 Python 自由职
482
大模型榜单周报(2025/12/20)
158
【节点】[LinearToGammaSpaceExact节点]原
790
Aspire 与 Azure Functions 深度集成:架构
1006
阿里Z-Image图像生成模型容器部署
311
痞子衡嵌入式:16MB以上NOR Flash地址模式
669
最新AI换脸软件,全面升级可直播,Mirage下
452
热点 Key 与大 Key 治理——识别、拆分、预
647
Media Extended
331
vlookup的终结者splookup,9个案例讲透查询
873
ROS2之Launch介绍