动易sitefactorycms 网站配置保存不了问题,怎么用polylang做网站菜单,seo推广思路,渠县网站建设ARITest、Python 和 Jenkins 可以结合在一起创建一个自动化测试解决方案#xff0c;实现持续集成和持续测试的目标。以下是三者如何协同工作的基本概念#xff1a;
1. **ARITest**#xff1a; ARITest 是一款功能全面的自动化测试工具#xff0c;提供 UI 自动化、接口自…ARITest、Python 和 Jenkins 可以结合在一起创建一个自动化测试解决方案实现持续集成和持续测试的目标。以下是三者如何协同工作的基本概念
1. **ARITest** ARITest 是一款功能全面的自动化测试工具提供 UI 自动化、接口自动化、性能测试等多种测试手段。假设您正在使用 ARITest 进行自动化测试可以编写或录制生成自动化测试脚本。
2. **Python** Python 在此场景中的角色可能是编写自动化测试脚本或者与 ARITest 结合使用。ARITest 支持多种编程语言若其支持 Python则可通过编写 Python 脚本来操控 ARITest 执行自动化测试任务或者处理测试过程中的数据和逻辑。
3. **Jenkins** Jenkins 是一个开源的持续集成和持续部署工具常用于自动化各种软件开发流程包括构建、测试和部署等。在您的案例中可以将 ARITest 的自动化测试集成到 Jenkins 工作流中 - 创建 Jenkins 任务配置源代码管理如 Git当代码库有新的提交时触发构建。 - 构建步骤中执行 ARITest 的自动化测试脚本无论是否为 Python 编写。这可以通过 Jenkins 插件或直接命令行调用实现。 - 测试完成后Jenkins 可以根据测试结果决定是否继续后续的部署或其他操作比如发送邮件通知、更新测试报告等。
总结来说ARITest 提供了自动化测试的能力Python 可能用于增强测试脚本的编写和处理逻辑而 Jenkins 则负责协调整个自动化流程确保每一次代码变更都能自动触发测试并及时反馈测试结果提升团队的工作效率和产品质量。
操作流程如下
1.Aritest里面编写自动测试用例,包含测试报告zip压缩源码已贴 2.脚本放在python中运行需要注意
auto_setup(__file__, devices[Android://127.0.0.1:65535/R9HT30CMP7X],logdirTrue) #pycharm中运行
3.脚本运行完接入Jenkins本地路径定时构建运行
4.查看定时构建的UI测试报告 如何自动化发送测试报告参考 展示Jenkins定时构建结果 展示 自动化发送测试报告参考 代码如下
# -*- encodingutf8 -*-
__author__ 86150import zipfilefrom airtest.core.api import *
from airtest.report.report import LogToHtml, simple_report
import yagmail#auto_setup(__file__) #airtest中运行auto_setup(__file__, devices[Android://127.0.0.1:65535/R9HT30CMP7X],logdirTrue) #pycharm中运行# with open(C://360Downloads/phone1.txt, r) as file:
# lines file.readlines()
# last_line lines[-1].strip()
# i last_line
# print(i)
# a i[-10:]
# print(a)def phone_lis():with open(C://360Downloads/phone1.txt,r)as f:phone_list []for line in f.readlines():phone_list.append(line.strip()[-10:])return phone_lista phone_lis()
for i in range(2): #循环次数根据文本内容phone_h a.pop()touch(Template(rtpl1702347655566.png, record_pos(0.12, -0.862), resolution(1080, 2408)))touch(Template(rtpl1702295125063.png, record_pos(-0.028, -0.372), resolution(1080, 2408)))shell(finput text {phone_h})touch(Template(rtpl1702347688845.png, record_pos(-0.012, 0.017), resolution(1080, 2408)))sleep(3.0)touch(Template(rtpl1702450967129.png, record_pos(-0.168, 0.108), resolution(1080, 2408)))shell(input text 1234)#输入验证码##2.点击借款完件sleep(2.0)touch(Template(rtpl1702443733048.png, record_pos(0.02, -0.106), resolution(1080, 2408)))sleep(5.0)touch(Template(rtpl1702443838057.png, record_pos(-0.187, -0.11), resolution(1080, 2408)))sleep(1.0)touch(Template(rtpl1702443851819.png, record_pos(-0.341, 0.741), resolution(1080, 2408)))sleep(1.0)touch(Template(rtpl1702443875269.png, record_pos(-0.237, 0.737), resolution(1080, 2408)))sleep(1.0)touch(Template(rtpl1702443894716.png, record_pos(-0.379, 0.739), resolution(1080, 2408)))sleep(2.0)touch(Template(rtpl1702443921021.png, record_pos(-0.005, 0.178), resolution(1080, 2408)))sleep(1.0)touch(Template(rtpl1702444012781.png, record_pos(0.001, 0.427), resolution(1080, 2408)))sleep(1.0)touch(Template(rtpl1702444030976.png, record_pos(-0.004, 0.719), resolution(1080, 2408)))sleep(1.0)touch(Template(rtpl1702444110247.png, record_pos(0.361, 0.723), resolution(1080, 2408)))#3.准备断言页面确认借款sleep(40.0)snapshot(msg确认借款额度页面)touch(Template(rtpl1702444750799.png, record_pos(-0.004, 0.881), resolution(1080, 2408)))##4.准备退出了切换账号sleep(2.0)touch(Template(rtpl1702441741837.png, record_pos(0.235, 0.913), resolution(1080, 2408)))sleep(1.0)touch(Template(rtpl1702441753369.png, record_pos(0.12, -0.817), resolution(1080, 2408)))sleep(1.0)touch(Template(rtpl1702441768025.png, record_pos(0.008, 0.256), resolution(1080, 2408)))sleep(1.0)touch(Template(rtpl1702441776831.png, record_pos(-0.228, 0.149), resolution(1080, 2408)))sleep(1.0)keyevent(HOME)sleep(1.0)##执行完毕准保下一轮#1.用脚本导出运行报告
h1 LogToHtml(script_rootrC:\Users\86150\Desktop\untitled6.air, log_rootrC:\Users\86150\Desktop\untitled6.air\log,export_dirrC:\360Downloads\test\report02, logfilerC:\Users\86150\Desktop\untitled6.air\log\log.txt, langzh,pluginsNone)
h1.report()#2.将导出的报告文件压缩成zip包
def zipDir(dirpath,outFullName):# dirpath为需要导出的文件夹路径# outFul1Name为导出的zip压缩包的路径 (含压缩包名称)zip zipfile.ZipFile(outFullName,w,zipfile.ZIP_DEFLATED)for path,dirnames,filenams in os.walk(dirpath):# 去掉目标根路径只对目标文件夹下边的文件及文件夹进行压缩fpath path.replace(dirpath,)for filename in filenams:zip.write(os.path.join(path, filename), os.path.join(fpath, filename))zip.close()
zipDir(rC:\360Downloads\test\report02\untitled6.log, rC:\360Downloads\test\untitled6.log.zip)#3.连接邮箱服务器
yag yagmail.SMTP(usermyqq.com, passwordcqfoejatumircahi, hostsmtp.qq.com)
#邮箱正文自定义
contents [Airtest测试报告,脚本: nolog_test.air,作者:Cas]
#发送带附件的邮件最后1个参数为附件地址
# 接收邮件的邮箱和附件地址可以为列表即发送给多个邮箱发送多个附件
yag.send(tomyismeprestamo.mx,邮件主题,contents,[rC:\360Downloads\test\untitled6.log.zip])#if __name__ __main__:
代码中本地创建日志路径如下