企业微信审批流程

前提条件
企业id: ww88fc20d87e4cdfa1
应用密钥: VI9fF3Fc9uPilq9KHyto0LuTdZ4cQZYpl9aixt3M_3s

获取应用的token

image.png
设置变量
image.png

批量获取单号

根据api文档,时间是动态的。所以编写代码 设置最近30天的时间范围。

image.png
设置获取时间

  1. // 使用JavaScript语法获取当前时间的毫秒数
  2. var datetime = new Date().getTime();
  3. // 转换为秒
  4. var time = parseInt(datetime/1000);
  5. // 设置开始时间 30天以前的时间
  6. pm.environment.set("starttime", time-60*60*24*30);
  7. // 设置结束时间 当前时间
  8. pm.environment.set("endtime", time);

image.png
给下一个接口设置参数。
image.png
在Tests中编写

  1. // 上下游传参设置变量
  2. pm.environment.set("sno", pm.response.json()["sp_no_list"][0]);

获取审批申请详情

在审批详情中获取对应的 模板id
image.png
对应的提取变量代码

  1. pm.environment.set("templateid", pm.response.json()["info"]["template_id"]);

面试问题

  1. 你觉得你做过的接口中比较有挑战性的有哪些?

参考:

  1. 时间问题:在做一些审批,预定,查询类相关接口的时候,请求参数(报文) 需要用到时间戳,测试的时候时间戳一般使用当前时间,不能直接将时间戳写死。需要一定的编码。—解决方法:通过代码的方式来计算时间戳,并设置为变量。
  2. 上下游传参问题:根据业务,进行上下游传参— 解决办法: 通过设置变量的方式进行传参。
  3. 业务问题:在做接口的时候,测试接口的方法都是通用的,但是具体的业务不一样。曾经遇到的接口参数20有余,里面需要关联的业务也比较多,同时和好几个接口有关联。虽然解决办法是通过传参来解决,但是业务比较复杂,一个字段出错就跑不通。 解决办法:多跟业务人员沟通,捋顺整个业务逻辑。
  4. 动态传参问题:在做单接口测试的时候,需要考虑异常场景,通用的解决办法使用csv文件配置,将测试数据和断言结果都存放在csv文件中。通过维护这些数据文件来保证接口运行。断言结果都不一样,添加断言的时候需要动态引用csv文件中的变量。
  1. 你做的接口中上下游传参,只是传了一个参数,这些都太简单了。

参考上面回答。

  1. 你的审批流程中接口的参数都有哪些? | 参数 | 必须 | 说明 | | —- | —- | —- | | access_token | 是 | 调用接口凭证。必须使用审批应用或企业内自建应用的secret获取,获取方式参考:文档-获取access_token | | creator_userid | 是 | 申请人userid,此审批申请将以此员工身份提交,申请人需在应用可见范围内 | | template_id | 是 | 模板id。可在“获取审批申请详情”、“审批状态变化回调通知”中获得,也可在审批模板的模板编辑页面链接中获得。暂不支持通过接口提交[打卡补卡][调班]模板审批单。 | | use_template_approver | 是 | 审批人模式:0-通过接口指定审批人、抄送人(此时approver、notifyer等参数可用); 1-使用此模板在管理后台设置的审批流程,支持条件审批。默认为0 | | choose_department | 否 | 提单者提单部门id,不填默认为主部门 | | approver | 是 | 审批流程信息,用于指定审批申请的审批流程,支持单人审批、多人会签、多人或签,可能有多个审批节点,仅use_template_approver为0时生效。 | | └ userid | 是 | 审批节点审批人userid列表,若为多人会签、多人或签,需填写每个人的userid | | └ attr | 是 | 节点审批方式:1-或签;2-会签,仅在节点为多人审批时有效 | | notifyer | 否 | 抄送人节点userid列表,仅use_template_approver为0时生效。 | | notify_type | 否 | 抄送方式:1-提单时抄送(默认值); 2-单据通过后抄送;3-提单和单据通过后抄送。仅use_template_approver为0时生效。 | | apply_data | 是 | 审批申请数据,可定义审批申请中各个控件的值,其中必填项必须有值,选填项可为空,数据结构同“获取审批申请详情”接口返回值中同名参数“apply_data” | | └ contents | 是 | 审批申请详情,由多个表单控件及其内容组成,其中包含需要对控件赋值的信息 | | └ └ control | 是 | 控件类型:Text-文本;Textarea-多行文本;Number-数字;Money-金额;Date-日期/日期+时间;Selector-单选/多选;;Contact-成员/部门;Tips-说明文字;File-附件;Table-明细;Location-位置;RelatedApproval-关联审批单;Formula-公式;DateRange-时长; | | └ └ id | 是 | 控件id:控件的唯一id,可通过“获取审批模板详情”接口获取 | | └ └ value | 是 | 控件值 ,需在此为申请人在各个控件中填写内容不同控件有不同的赋值参数,具体说明详见附录。模板配置的控件属性为必填时,对应value值需要有值。 | | summary_list | 是 | 摘要信息,用于显示在审批通知卡片、审批列表的摘要信息,最多3行 | | └ summary_info | 是 | 摘要行信息,用于定义某一行摘要显示的内容 | | └ └ text | 是 | 摘要行显示文字,用于记录列表和消息通知的显示,不要超过20个字符 | | └ └ lang | 是 | 摘要行显示语言 |