Coded UI非常好,我开始还在想,怎么样能让一个通过SharePoint Designer创建的Workflow publish三百五十次?想不到一个好的方法,也不知道SharePoint Designer里那个publish按钮调用的是什么方法,想来想去还是用Coded UI尝试了一下,发现也挺好,在资源允许的情况下,就这样完成了SPD Workflow的自动化创建:

1. 首先,你得有个SPD Workflow

2. 通过我第一次录制的脚本发现,SharePoint本身有个bug,就是如果你在Publish完这个Reusable Workflow之后如果不去SharePoint List的Workflow Settings页面刷新一下的话,这个Publish的版本根本就没有创建成功,于是我第二次录制的脚本中有多了一步,就是在Publish Workflow之后要去往Workflow Settings页面刷新一下,这样就能确保Workflow每次Publish都是成功的:

具体的脚本流程如下(Coded UI具体用法详见我之前发表的一篇文章里有介绍),其实和你操作SharePoint Designer Publish Workflow的步骤是一样的,只不过在最后两步——Publish Workflow和刷新Workflow Settings页面这里我加了一个循环,以达到自动化创建欲达到的次数,就是这样(过程详见我注释行括号中加的汉语):

public void RecordedMethod(){#region Variable DeclarationsWinButton uIItem30828CI1Button = this.UIHttpmgluca10000sitesWindow.UIItem30828CI1ListItem.UIItem30828CI1Button;WinButton uIWorkflowsButton = this.UIHttpmgluca10000sitesWindow.UIWorkflowsListItem.UIWorkflowsButton;WinListItem uIRe10ListItem = this.UIHttpmgluca10000sitesWindow.UIItemWindow1.UIItemList.UIRe10ListItem;WinButton uIPublishButton = this.UIHttpmgluca10000sitesWindow.UIItemWindow.UISaveToolBar.UIPublishButton;WinEdit uIAddressEdit = this.UIMsnWindowsInternetExWindow.UIItemWindow.UIAddressBarClient.UIAddressEdit;BrowserWindow uIMsnWindowsInternetExWindow = this.UIMsnWindowsInternetExWindow;HtmlHyperlink uIShareHyperlink = this.UIMsnWindowsInternetExWindow.UIWorkflowSettingsDocument.UIShareHyperlink;HtmlDocument uIWorkflowSettingsDocument = this.UIMsnWindowsInternetExWindow.UIWorkflowSettingsDocument;#endregion// Launch '%ProgramW6432%\Microsoft Office\Office15\SPDESIGN.EXE'(打开SPD)ApplicationUnderTest sPDESIGNApplication = ApplicationUnderTest.Launch(this.RecordedMethod4Params.ExePath, this.RecordedMethod4Params.AlternateExePath);// Click '30828CI1' button(点击相应的站点)Mouse.Click(uIItem30828CI1Button, new Point(48, 10));// Click 'Workflows' button(点击Workflows)Mouse.Click(uIWorkflowsButton, new Point(54, 7));// Click 're10' list item(点击相应的Workflow)Mouse.Click(uIRe10ListItem, new Point(35, 13));// Click 'Publish' button(点击Publish按钮)Mouse.Click(uIPublishButton, new Point(13, 31));// Go to web page 'http://go.microsoft.com/fwlink/p/?LinkId=255141' using new browser instance(打开浏览器)this.UIMsnWindowsInternetExWindow.LaunchUrl(new System.Uri(this.RecordedMethod4Params.UIMsnWindowsInternetExWindowUrl));// Click 'Address' text box(点击浏览器地址栏)Mouse.Click(uIAddressEdit, new Point(216, 2));// Go to web page 'http://mglu-ca:10000/sites/30828CI1/_layouts/15/WrkSetng.aspx?List={C9B1EDD4-8B24-4115-9753-3113D02BE3C1}'(输入Workflow Settings页面的地址)uIMsnWindowsInternetExWindow.NavigateToUrl(new System.Uri(this.RecordedMethod4Params.UIMsnWindowsInternetExWindowUrl1));// Set flag to allow play back to continue if non-essential actions fail. (For example, if a mouse hover action fails.)Playback.PlaybackSettings.ContinueOnError = true;// Mouse hover 'Share' link at (8, 3)Mouse.Hover(uIShareHyperlink, new Point(8, 3));// Reset flag to ensure that play back stops if there is an error.Playback.PlaybackSettings.ContinueOnError = false;int i=0;while (i < 350){// Click 'Publish' button(点击Publish按钮)Mouse.Click(uIPublishButton, new Point(23, 31));// Type '{F5}' in 'Workflow Settings' document(刷新Workflow Settings页面)Keyboard.SendKeys(uIWorkflowSettingsDocument, this.RecordedMethod4Params.UIWorkflowSettingsDocumentSendKeys, ModifierKeys.None);}}

就这样,一个自动化创建SPD Workflow的任务就完成了,还挺快的,一分钟差不多创建10个SPD Workflow左右,半个小时左右弄完。

不过这是通过最接近用户操作的方法实现的,却不是通过直接调用相关API实现的。

还希望有大神能给出直接调用相关API实现Publish SPD Workflow的方法,共同学习,共同进步。

SharePoint自动化系列——通过Coded UI录制脚本自动化创建SharePoint Designer Reusable Workflow...相关推荐

  1. JMeter专题系列(二)录制脚本

    环境 Badboy  version 2.1.1 JDK: 1.7.0_67 Apache  JMeter-2.11 ----------------------------------------- ...

  2. 如何使用Coded UI Test对Webpage进行自动化测试

    在Visual Studio中,Coded UI Test已经不是什么新特性了,较早版本的Visual Studio中就已经有这个东东了.它主要用来帮助自动化测试工程师和开发人员确保程序在UI方面没有 ...

  3. 在Visual Studio 2010中实现数据驱动Coded UI Tests

    通常情况下,我们要与不同的数据值一起重复一个测试.这个"数据驱动"在Coded UI Test中非常容易的.在本例子中,我们创建了一个Coded UI Test,以验证在计算器的两 ...

  4. 使用Coded UI进行UI的自动化测试

    介绍 曾经有一段时间,人们习惯于在MS Excel里面编写单元测试用例,然后开发人员就按照单元测试用例一步一步的来实现用例.这通常是很耗时的漫长的过程,尤其是如果应用很大或者UI很复杂的话. 这一套单 ...

  5. badboy录制php,Jmeter(二十九) - 从入门到精通 - Jmeter Http协议录制脚本工具-Badboy2(详解教程)...

    1.简介 上一篇文中已经对Badboy做了一个基本上详细完整的介绍,这一篇宏哥带你们实战一下,这一篇主要讲解和分享:录制和运行脚本.参数化 首先让我们使用N模式录制一个脚本,测试用例编号为:1.1.1 ...

  6. jmeter教程系列(20)jmeter录制接口自动化脚本

    jmeter录制接口自动化脚本 1.添加HTTP代理服务器 2.添加线程组 3.配置HTTP代理服务器 4.设置本地代理 5.录制完成后,调试脚本 (1)使用正则表达式提取器登录模块中公共的token ...

  7. APP自动化测试系列之appium-desktop配置及录制脚本

    VOL 177 23 2020-11 今天距2021年38天 这是ITester软件测试小栈第177次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 0 ...

  8. python录制生成自动化脚本_懒人做自动化测试之二--自动化脚本录制

    自己造轮子多麻烦,如果有现成的轮子可以利用,何不直接拿过来用呢. 听说谷歌发布了一款由网易研发的游戏 UI 自动化测试方案:Airtest Project.谷歌方面表示 Airtest 是安卓游戏开发 ...

  9. linux 运维高级脚本生成器,Linux运维系列,Shell高级脚本自动化编程实战

    课程文件目录: Linux自动化运维系列 Shell高级脚本自动化编程实战 [6.1G] ┣━━01.Shell基础概述 [315.1M] ┃ ┣━━1-1 Shell脚本体系概述.mp4 [154. ...

最新文章

  1. Android中自定义checkbox样式
  2. POJ 3164 Command Network (最小树形图)
  3. HAProxy 2.0发布,长期支持版本
  4. 《MySQL——关于grant赋权以及flush privileges》
  5. Codeforces 913 二进制背包(柠檬水) 暴力贪心特殊背包(选题)
  6. LUGOU P3907 圈的异或
  7. 关于open***的实验总结
  8. tomcat 内存溢出问题
  9. Pandas Series 1
  10. 【转】轻松记住大端小端的含义(附对大端和小端的解释)
  11. 学校计算机考试系统故障,解决在线考试系统设计的常见问题
  12. HTML5期末大作业:旅游网站设计——桂林旅游(3页) HTML+CSS+JavaScrip
  13. linux 系统安装Iso,linux系统安装iso文件方法
  14. 怎么清理计算机磁盘空间,怎样清理电脑磁盘空间
  15. 工作就是这么简单——去哪儿网CTO吴永强
  16. 001 量子计算与复数
  17. AR(增强现实)开发资源汇总
  18. 踩坑之路:finish方法执行后居然还有这种操作?
  19. Carmichael function[卡迈克尔函数相关性质]
  20. 免费的在线MP4视频转gif工具,不注册不登录不花钱不安装

热门文章

  1. 开发CISCO交换机管理软件
  2. 大数据之_数据采集Flume_Flume介绍---Flume工作笔记001
  3. 大数据之_数据采集Flume_Flume了解_学习内容介绍---Flume工作笔记002
  4. centos7查看安装的是64位系统还是32位系统---linux工作笔记043
  5. AndroidStudio安卓原生开发_Android扫描附近指定的蓝牙设备_通过设备名称过滤_计算距离_离扫描设备近的显示的时候放在前面---Android原生开发工作笔记128
  6. oracle零碎要点---oracle em的web访问地址忘了
  7. python数据结构二叉树的前序,中序,后续遍历与推导
  8. 一个字符串中包含另一个字符串所有字符的最短子串长度?——《编程之美》最短摘要的生成的简化
  9. php 输出可以设置格式文件,PHP实现的文件直接输出下载
  10. 随想录(matlab学习)