首页 / 知识
使用Python自动化测试iOS项目
2023-11-12 13:41:00
作为一个开发人员,为了保证自己的代码的健壮,写单元测试是必不可少的环节,然而最痛快的是每天去手动跑一遍所有的case。那么什么能帮我们解决这些繁琐的操作呢,大家应该会想到自动化测试脚本了,是的,我们可以借助脚本来完成全自动化测试,下面是我列的每天脚本自动执行流程:
1、pullgit仓库里面的最新代码到本地。
2、然后打包成App。
3、安装到模拟器上。
4、运行App,执行单元测试,生成测试数据并保存到本地。
5、脚本读取测试数据,邮件发送给相关人员。
当这些全自动化后,可以大大减少开发人员的维护成本,即使每次项目里面有新增模块后,增加测试case就行了,下面会介绍自动测试这5步具体怎么去执行,整个脚本是使用Python写的,代码很少功能也很简单,但这已经可以帮我们完成基本的自动化测试了,这就是脚本的强大之处,选择Pyhton纯属个人喜好,最近也在学习Python,当然了最终使用什么语言看你自己。
python执行shell命令完成测试
首先确认本机上安装了git和python。
脚本判断本地是否存在项目,不存在则使用命令gitclone...,存在则使用命令gitpull...。
这些在Linux的命令都可以使用脚本来完成的,python的os.popen()方法就是可以在Linux上执行shell命令。
例如:把下面这段代码添加到一个test.py的文件里,然后在终端上执行pythontest.py命令你就会看到,你的当前目录下正在下载我的博客了。
importos
os.popen('gitclonehttps://github.com/leopardpan/leopardpan.github.io.git')
gitpull。。。更新代码也是一样的。
接下来的打包、安装、运行都是使用python执行shell命令
把iOS项目打包成App,下面的Demo是项目的名字
os.popen(‘xcodebuild-projectDemo.xcodeproj-targetDemo-configurationDebug-sdkiphonesimulator’)
这行脚本运行完成后,你就会发现同会生成一个build的文件夹。
Debug参数表示现在是Debug模式,如果Xcode里面改成Release了,这里需要改成Release。
xcodebuild命令是XcodeCommandLineTools的一部分。通过调用这个命令,可以完成iOS工程的编译,打包和签名过程。可以使用xcodebuild–help来看看具体有哪些功能。
打开iOS模拟器,这里运行的是iPhone6Plus你也可以换成其它型号的模拟器
os.popen(‘xcruninstruments-w“iPhone6Plus”’)
把刚才打包生成的App安装到模拟器上在安装之前要先卸载App,不然你运行的永远是最初安装的那个,后来安装的不会覆盖之前的,卸载App
os.popen(‘xcrunsimctluninstallbootedcom.test.Demo’)
booted后面接的是BundleIdentifier,我的是com.test.Demo,然后再安装App
os.popen(‘xcrunsimctlinstallbootedbuild/Debug-iphonesimulator/Demo.app‘)
booted后面接的是.app的路径,我打包的时候的是Debug,所以这个的文件夹名称是Debug-iphonesimulator。
在模拟器里运行App
os.popen(‘xcrunsimctllaunchbootedcom.test.Demo’)
booted后面接的是BundleIdentifier,我的是com.test.Demo。
到目前为止,你就会发现你的项目已经运行起来了,你可以在项目是Debug模式下一启动就执行单元测试,然后把对应的测试数据保存到本地为data.json。然后在使用python脚本读取测试文件的数据,最终使用邮件发送给相关人员,pyhton读取数据很简单,一行代码就行
data=open(‘data.json’).read()
data里面就是json字符串,为了脚本操作简单,我在存储的时候直接把json格式的转成了字符串类型。
python发送邮件
我使用的是SMTP进行邮件发送的,SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。
Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件,具体代码如下:
fromemailimportencoders
fromemail.headerimportHeader
fromemail.mime.textimportMIMEText
fromemail.utilsimportparseaddr,formataddr
importsmtplib
defformat_addr(self,s):
name,addr=parseaddr(s)
returnformataddr((\
Header(name,'utf-8').encode(),\
addr.encode('utf-8')ifisinstance(addr,unicode)elseaddr))
defsend_mail(self,mail,message,title):
from_addr='leopardpan@163.com'
password=''
to_addr=mail
smtp_server='smtp.163.com'
msg=MIMEText(message,'plain','utf-8')
msg['From']=self.format_addr(u'自动化测试邮件
以上内容为大家介绍了使用Python自动化测试iOS项目,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们http://www.mobiletrain.org/
最新内容
相关内容
用linux命令新增磁盘?
用linux命令新增磁盘?,系统,信息,设备,管理,工作,数据,号码,新增,代码,业务,如何在linux上添加新硬盘在我们添加硬盘前,首先要了解linux系统下linux命令行连数据库?
linux命令行连数据库?,地址,服务,信息,名字,数据库,密码,网络,一致,软件,系统,linux怎么连接mongodb数据库1、在这里使用的是MongoVUE进行连接怎么把数据库导入navicat?
怎么把数据库导入navicat?,软件,信息,密码,管理,数据库,服务,电脑,按钮,类型,文件,Navicat是一个强大的数据库管理工具,它可以连接和管理多种数比较好用的Python代码编辑器
比较好用的Python代码编辑器,代码,平台,环境,培训,教育,设计,数据,办公,人员,分析,Python是一款非常简单的编程语言,其功能使用起来都十分方便Python数据分析有哪些重要的库?
Python数据分析有哪些重要的库?,数据,分析,标准,庞大,通用,平台,培训,工具,基础,灵活,众所周知,有很多编程语言都可以应用于数据分析领域,但PythPython数据分析相关的技术
Python数据分析相关的技术,数据,工具,化学,设计,分析,网络,软件,系统,工程,商业,1.机器学习和计算机视觉Crab:灵活、快速的推荐引擎gensim:人性Python数据分析要学什么数学
Python数据分析要学什么数学,数据,分析,技术,基础,体系,信息,基础知识,培训,下降,量化,因为不知道所学的数学知识到底有什么用。对于IT公司的python能做什么项目
python能做什么项目,项目,数据,基础,图片,信息,工具,网站,概念,代码,基本知识,大家在学完python基础之后,突然迷茫起来了,这时就需要一些项目练Python初学者的练手项目
Python初学者的练手项目,项目,价格,服务,设备,数字货币,变动,工作,网站,工具,手机,有很多朋友问我学习了Python后,有没有什么好的项目可以练手python之访问对象的元数据
python之访问对象的元数据,数据,异常,培训,属性,模块,对象,类型,定义,文档,实例,当你对一个你构造的对象使用dir()时,可能会发现列表中的很多Python之数据库游标对象详解
Python之数据库游标对象详解,软件,代码,一致,培训,数据库,游标,对象,方法,事务,操作,常用数据库:MySQL、Oracle、SQLite但是包嵌入到Python中Python Selenium爬取数据
Python Selenium爬取数据,数据,网站,培训,代码,信息,工作,公司,时间,爬虫,文件,最近公司有一项Python爬取数据的工作,借鉴以往的代码将爬虫重